Redis需要加锁吗? [已关闭]

问题描述 投票:0回答:1

我读到 Redis 是单线程的,所有命令都是原子的。但也有一些参考文献讨论了 Redis 中的锁,例如https://redis.io/topics/distlock

我不清楚为什么Redis是单线程的还需要锁。有人可以解释一下吗?

redis valkey
1个回答
17
投票

不,Redis 不需要锁定。

是的,Redis 是单线程的。我们这里说的锁不是针对Redis的,而是利用Redis来做分布式锁。

分布式锁的目的是确保在可能尝试执行同一工作的多个节点中,实际上只有一个节点执行此操作(至少一次只有一个节点)。这项工作可能是将一些数据写入共享存储系统、执行一些计算、调用一些外部 API 等。

来自:如何做分布式锁

这几个节点是您在其他服务器上的工作负载。您正在使用 Redis 类似的 RAM 共享内存来实现锁。

Redis 是分布式锁的绝佳选择,因为它是内存数据库,因此可以提供亚毫秒级的延迟。有关使用 Redis 实现的此类锁的示例,请参阅 python-redis-lock

© www.soinside.com 2019 - 2024. All rights reserved.