- 博客(3)
- 资源 (6)
- 收藏
- 关注
原创 【Redis 分布式锁】(3)完善这把“锁”
https://www.changxuan.top/?p=1243在上一篇文章(好用一点的锁)的最后,我们又发现了目前的锁存在两个问题:由于不可控的异常状况,持有锁的线程不能显示的释放锁,导致锁一直处在被持有的状态。 目前锁不支持在某一段时间内只允许获取一次锁。我们首先来看第一个问题。为了避免出现这种“长生不老”的锁,我们肯定需要给它设置一个过期时间的。你可能会想到使用expire命令对锁设置过期时长,但是setnx和expire的两次执行需要是原子性的。为什么需要是原子性的?还是那...
2021-01-31 13:11:14 248
原创 【Redis 分布式锁】(2)好用一点的“锁”
https://www.changxuan.top/?p=1238在上一篇文章(一把简单的“锁”)中,我们发现了目前锁存在两个问题:某个线程所持有的锁可以被其它线程随意释放掉 目前锁还不支持可配置的阻塞/非阻塞锁注:当然不仅仅存在这两个问题首先,我们来看第一个问题。之所以存在这种问题,是因为在释放锁的时候只要知道这把锁的名称(key)就能释放成功了。就好比你进卧室后,在卧室门上加了一把“卧室锁”(key),然后有其他人想进的时候就说释放”卧室锁”,然后门就开了。所以,这把锁也太不安全了。想解
2021-01-31 13:08:42 232
原创 【Redis 分布式锁】(1)一把简单的“锁”
原文链接:https://www.changxuan.top/?p=1230前言在单体架构向分布式集群架构演进的过程中,项目中必不可少的一个功能组件就是分布式锁。在开发团队有技术积累的情况下,做为团队的一个“工具人”往往有限的时间都投入到了业(C)务(U)开(R)发(D)上,并不会去深究工具类中的分布式锁到底是如何实现的。大家只需要清楚如何使用某个同事写好的 Redis 工具类就可以了。所以,今天就带大家从零开始实现一个基于Redis的可以在项目中直接使用的分布式锁。首先,需要搞清楚一个问题,我
2021-01-31 13:06:37 262
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人