线程redis java p25
如何用Redis构建分布式锁系统?
对常见的加锁场景的归纳,只涉及到了JVM的api锁和redis的分布式锁。其实也可以用zookeeper或者mysql,其他的以后在分享吧,其实最完美的还是老外那套saga状态机 解决分布式事务比较完美,缺点就是难度很大要用到领域驱动的思想,国内普遍用的贫血模型,切换到DDD还是需要些时间研究的,对 ......
Java 系统学习 | Springboot 写 hello world
经过一段时间基础学习,现在开始使用 Springboot 框架完成项目,特地记录一下,方便后续查漏补缺。 本篇使用 Springboot3 框架,IDEA2022 编辑器,java17 版本。 新建项目 file -> new -> project 弹框中填入自己的信息 Name 项目名称 Loca ......
【Java】过滤器和拦截器的位置
过滤器(Fliter)和拦截器(Intercetor)区别 过滤器(Fliter) 拦截器(Interceptor) 总结 定义位置 Fliter定义在java.servlet包下 接口HandlerInterceptor定义在org.springframework.web.servlet包下 配置 ......
Java环境、IDEA最新配置指南-建议收藏
前言 工欲善其事必先利其器,总结一下,避免每次安装都要现搜现找,以后直接按步骤执行就行。 总结的同时,也希望帮助更多的人~ 内容包括: Java环境配置 Apache Maven配置 最新IntelliJ IDEA配置 IntelliJ IDEA配置包含了:AI插件、Maven全局配置、代码自动补全 ......
Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "getSysTenantNames"
我测试的是一个接口 接口里面没有任何参数 怎么会报参数类型转换错误呢 mad !!!!! 第二个接口 就很蒙 测了好久都是这个问题 而且你打debug 它不进这个接口并且 你执行其他写好的接口 它还是会报同样的错 。。。。。。。。。。。。。。 其实就是你代码的位置写错了 应该写在pc端的 你把代码写 ......
Redis过期删除策略
定时删除; 惰性删除; 定期删除; 定时删除策略是怎么样的? 定时删除策略的做法是,在设置 key 的过期时间时,同时创建一个定时事件,当时间到达时,由事件处理器自动执行 key 的删除操作。 定时删除策略的优点: 可以保证过期 key 会被尽快删除,也就是内存可以被尽快地释放。因此,定时删除对内存 ......
详解Java编写并运行spark应用程序的方法WordCount_tyt2023
SparkContext:通往Spark集群的入口点,用于创建RDD和广播变量等 RDD:弹性分布式数据集,Spark应用程序的核心抽象 Transformation:操作RDD生成新的RDD,如map、filter等 Action:对RDD的操作,如count、collect等 环境:Spark ......
java的启动脚本
java的启动脚本: run_java.sh脚本内容: - 设置工作目录 - 设置必要的环境变量 - 设置JVM运行参数 - 运行程序 创建运行脚本: 使用run_java.sh来运行java程序 1.修改run_.sh 2.转成UNIX风格 3.上传至Linux 4.添加 +x 权限,运行脚本 要 ......
2017 《Java 2实用教程(第5版)》是由耿祥义、张跃平编著
我的研究生同学 河南老乡 河南工业大学Jackso_hao 大学期间学习的Java教材 《Java 2实用教程(第5版)》是由耿祥义、张跃平编著,2017年清华大学出版社出版的高等学校Java课程系列教材、普通高等教育“十一五”国家级规划教材。该教材既可作为高等院校相关专业Java程序设计的教材,也 ......
java集合工具类 Collections基本使用
Collections 为 List、Set、Map 等集合类定义了相应的空集合常量 // 空 List Collections.emptyList(); // 空 Set Collections.emptySet(); // 空 Map Collections.emptyMap(); 一个元素的集 ......
java进行数据库操作的并发控制的2种方法
本文分享自华为云社区《java进行数据库操作的并发控制》,作者:张俭。 在现代应用编码中,从数据库里面find出来,进行一些业务逻辑操作,最后再save回去。即: Person person = personRepo.findById(id); person.setAge(18); personRe ......
Redis事务
其实redis的事务是个假事务,没有实现原子性, 若要php支持事务,必须一起执行,其中incr会报错 $status = $redis->multi()->lPush($key1, '1123')->lPush($key2, '2123')->incr("age","age")->exec(); ......
Java第十九课_反射
1.测试 测试 public class JiSuanQi { public int add(int a,int b){ return a + b; } public int jian(int a,int b){ return a - b; } public int cheng(int a,int ......
Redis进阶 使用Lua编写Redis脚本
前面学习了Lua的基本语法,接下来是使用Lua编写脚本 1.可以使用redis.call来调用redis命令 使用redis.call会将redis命令返回的类型 转换成对应的Lua数据类型。 关系如下 与redis.call想类似的就是redis.pcall。 【redis.call与redis. ......
redis主从配置
先学一个高端linux指令: cat redis.conf | grep -v "^#" | grep -v "^$" > msconf/redis-master.conf -v 反向查找 "^#"以#开头的行 "^$"空行 将redis.conf去掉空行和以#开头的行,写入到msconf文件夹的r ......
Java定义变量容易出错的点
在Java中,定义的数值有默认的类型(整型为 int 、浮点型为 double),所以在定义变量的时候要注意类型的问题。 例如: 因为给l的值(10000000000)默认类型是int类型,所以超出了范围; 修改: 在给的值后面加上L,扩大数的范围即可运行通过。 ps:也可以加上小写的l,但是小写的 ......
Java基础2
1.抽象类 在Java中,抽象类(Abstract Class)是一种特殊类型的类,它不能被实例化,而是用于被其他类继承。抽象类可以包含抽象方法和具体方法。 以下是关于抽象类的一些关键点: 定义抽象类: 使用abstract关键字定义抽象类。 不能实例化抽象类,即不能使用new关键字创建抽象类的对象 ......
Java登陆第三十天——Cookie和Session
会话 会话就是客户端与服务器的一次交互。 HTTP是一种无状态协议 无状态:服务端不会记录客户端信息。 有的时候,我们需要保存客户端的信息。 对于登陆功能来说,保存客户端信息,可以避免客户端每访问都需要登陆一次 至此,会话管理诞生。 Cookie Cookie是一种客户端会话技术,并保存在客户端之中 ......
运行Java程序
Java及环境变量: 安装 openjdk-8-jre-headless ls /usr/bin/java 默认放在/usr/bin下,不需要额外设置PATH 提示:如果放在自定义位置,需要设置PATH export PATH=$PATH:/opt/jdk8/bin 运行Java程序: 1.在Win ......
redis哨兵
Redis 安装 1、上传 如下图:将redis-5.0.8.tar.gz包上传到目录:/apphome/下 2、解压 如下图:解压压缩文件,执行命令:tar -zxvf redis-5.0.8.tar.gz,解压后生成新的文件夹redis-5.0.8 3、编译安装 如下图:执行命令:make && ......
Java的安装
Ubuntu下的Java环境: 1.JDK/JRE的安装 2.java的环境变量 3.运行普遍Java程序 4.Java程序的运行脚本 1.先安装Java的软件包: JRE: openjdk-8-jre-headless JDK: openjdk-8-jdk-headless 安装命令: sudo ......
wsl docker 安装redis
wsl docker 安装redis 宿主机准备配置文件 redis.conf 根据需要修改配置/docker-project/redis/redis.conf, 例如如下开启远程连接访问redis bind 0.0.0.0 protected-mode no 启动命令 docker run --r ......
[JAVA基础]后端原理
后端原理 【【网站架构】5分钟了解后端工作原理。为什么Tomcat长时间运行会崩溃?高并发线程池怎么设置?】 https://www.bilibili.com/video/BV1PB4y11795/?share_source=copy_web&vd_source=55965a967914567042 ......
死锁、内部碎片、外部碎片、多进程/多线程、服务器高并发、集群
死锁:两个(多个)线程互相等待对方数据的过程 1.死锁产生条件(解决办法): 🔴 互斥条件:所需求的资源具有排他性,其他请求进程只能等待(可以允许多进程、多线程访问) 🔴 不剥夺条件:未主动释放,不能被其他进程夺走(可以强制剥夺) 🔴 请求和保持:进程或线程至少持有一个资源,并且在等待其他资源 ......
java流程控制
一.用户交互Scanner对象 可以用Scanner类来获取用户的输入 Scanner对象的基本语法 Sacnner scanner = new Scanner(System.in) Scanner 类的常用方法 hasNext();判断用户是否有输入 next();读取到有效字符后返回 hasNe ......
java数组
一.数组的概述 1.数组的定义: 1.数组是相同类型数据的有序集合. 2.数组是描述相同类型的若干个数据,按照一定的先后顺序排列而成. 3.其中.每一个数组数据称为一个数组元素,每一个数组元素可以通过下标来进行访问. 2.数组的四个基本特点: 1. 其长度是确定的。数组一旦被创建,它的大小就是不可以 ......
idea在build阶段出现错误以下错误:java: Internal error in the mapping processor: java.lang.NullPointerException,导致项目无法启动。
解决方案: 打开idea的File --> Setting --> Build,Execution,Deployment --> Compiler --> User-local build 加上参数: -Djps.track.ap.dependencies=false ......
Qt 中的多线程 02:移动工作对象到子线程中
Qt 中的多线程除了通过继承 QThread 类,然后重写虚函数 run() 之外还有另一种方案:将要执行的复杂操作,放在一个继承自 QObject 的类中,然后使用 QObject::moveToThread(QThread*) 函数将工作对象的移动到创建的子线程中去执行。 工作对象类 该类继承自 ......
Java线程池ThreadPoolExecutor源码解析
Java线程池ThreadPoolExecutor源码解析 1.ThreadPoolExecutor的构造实现 以jdk8为准,常说线程池有七大参数,通常而言,有四个参数是比较重要的 public ThreadPoolExecutor(int corePoolSize, int maximumPoo ......