黑马程序员Redis入门到实战教程,深度透析redis底层原理+redis分布式锁+企业解决方案+黑马点评实战项目
总时长 42:48:00 共175P
此文章包含第64p-第p68的内容
文章目录
分布式锁的优化

在redis基础上实现的一个分布式工具的集合

它的github首页

看一下wiki


Redission操作
这里是单集群的redis,所以是useSingleServer 也可以配置集群的


编写代码
-
添加依赖

-
创建配置类


-
修改之前的代码


如果写无参的话会使用默认值
参数1:-1代表不等待(失败了不重试,直接返回),(如果是5 代表5秒内失败了可以去重试)
参数2:30 代表30秒之后如果没解开 就自动解锁避免死锁
参数3: 秒

使用无参

测试200个请求

测试通过 只加入了1条

Redission可以实现可重入锁的原理





锁的重入


lua脚本编写可重入锁
获取锁脚本
(hincrby自增)


释放锁脚本


测试 单元测试





锁被删除


源码
获取锁







释放锁





nil就是null
锁重试&看门狗

传入等待时间和单位










主从一致性

主节点一般是写操作(增删改) 从节点一般是读操作(查)


主节点发生故障



测试
这里我们用docker创建3个主节点进行测试(形成连锁)

- 修改之前的配置代码








被折叠的 条评论
为什么被折叠?



