我读到Redis是单线程的,所有的命令都是原子的。但是在Redis中也有关于锁的参考文献,例如https://redis.io/topics/distlock
我不清楚为什么Redis仍然需要锁,如果它是单线程的。谁能解释一下吗?
发布于 2019-12-20 15:15:09
不,Redis不需要锁。
是的,Redis是单线程的。我们这里讨论的锁不是针对Redis的,而是使用Redis作为分布式锁的。
分布式锁的目的是确保多个节点之间的-可能尝试执行相同的工作-实际上只有一个(至少一次只执行一个)。这种工作可能是将一些数据写入共享存储系统,执行一些计算,调用一些外部API或类似的方法。
来自:如何进行分布式锁定
这几个节点是其他服务器上的工作负载。您正在使用Redis类作为RAM共享内存来实现锁。
对于分布式锁,Redis是一个很好的选择,因为它为您提供了次毫秒延迟,因为它是内存中的数据库。
https://stackoverflow.com/questions/59426682
复制相似问题