摘要: 假设程序a获取到锁之后需要调用程序b,但是程序b需要使用锁, 但是这个时候程序a并没有执行完程序所以不能释放锁,但是程序b获取不到锁就没有办法执行,因此就出现了死锁 这样可以使用可重入锁解决(即判断是自己的锁则就可以再次获取锁) existe 判断锁是否存在,hset 设置锁, expire 设置锁 阅读全文
posted @ 2022-01-11 23:48 Yapi酱 阅读(1130) 评论(0) 推荐(0)
摘要: 使用lua需要配置环境,但是Redis已经继承了Lua,所以使用Redis可以不用安装Lua脚本,其本身提供了对lua的支持 主要通过 指令 eval script numKeys key.. arg.. redis输出的不是lua脚本的输出,而是lua脚本的的返回值 //基于 Redis 实现分布 阅读全文
posted @ 2022-01-11 20:22 Yapi酱 阅读(146) 评论(0) 推荐(0)
摘要: 在为获取到锁,从而进行循环时,可能会出现,删除其他线程的锁的问题,即误删, 所以需要对代码使用lua脚本进行修改 修改前代码 //基于 Redis 实现分布式锁 public void testLock() { //加锁 String uuid = UUID.randomUUID().toStrin 阅读全文
posted @ 2022-01-11 19:44 Yapi酱 阅读(771) 评论(0) 推荐(0)
摘要: 添加Redis的POM依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 使用自动装配引入 阅读全文
posted @ 2022-01-11 18:45 Yapi酱 阅读(108) 评论(0) 推荐(0)