美文网首页
2018-09-03 Redis notes

2018-09-03 Redis notes

作者: 尖头核桃 | 来源:发表于2021-02-18 16:08 被阅读0次

Summary from Redis 深度历险

分布式锁

  1. 原子问题 To ensure the automic
setnx lock:beihanz true 
expire lock:beihanz 5
--> 
set lock:beihanz true ex 5 nx 
  1. 超时问题
    Redis 的分布式锁不能解决超时问题,如果在加锁和释放锁之间的逻辑执行的太长,以至于超出了锁的超时限制,就会出现问题。因为这时候锁过期了,第二个线程重新持有了这把锁,但是紧接着第一个线程执行完了业务逻辑,就把锁给释放了,第三个线程就会在第二个线程逻辑执行完之间拿到了锁。
    解决方案:使用随机数作为锁,然后再释放锁的时候判断是不是当前随机数。
  2. 实现可重入
    使用ThreadLocal 记录当前锁的计数

延时队列

相关文章

网友评论

      本文标题:2018-09-03 Redis notes

      本文链接:https://www.haomeiwen.com/subject/kxabwftx.html