redis应用-分布式锁

Posted yourscgg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis应用-分布式锁相关的知识,希望对你有一定的参考价值。

一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的。

set lock:codehole true ex 5 nx

5秒之内持有锁,ex:超时时间   nx:当key不存在时创建

Redis 的分布式锁不能解决超时问题,如果在加锁和释放锁之间的逻辑执行的太长,以至于超出了锁的超时限制,就会出现问题。因为这时候锁过期了,第二个线程重新持有了这把锁,但是紧接着第一个线程执行完了业务逻辑,就把锁给释放了,第三个线程就会在第二个线程逻辑执行完之间拿到了锁。

为了避免这个问题,Redis 分布式锁不要用于较长时间的任务。

 

以上是关于redis应用-分布式锁的主要内容,如果未能解决你的问题,请参考以下文章

Redis实现分布式锁(设计模式应用实战)

3.Redis系列Redis的高级应用-分布式锁

redis应用系列一:分布式锁正确实现姿势

redis应用系列一:分布式锁正确实现姿势

redis分布式锁

redis 分布式锁