需要使用分布式锁的场景下,多少人会考虑用 redlock? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zeonluang
V2EX    程序员

需要使用分布式锁的场景下,多少人会考虑用 redlock?

  zeonluang 2023-09-27 21:46:15 +08:00 2338 次点击
这是一个创建于 748 天前的主题,其中的信息可能已经有所发展或是发生改变。

如果使用 redlock 的话,需要多主部署,为了一个分布式锁更改 redis 部署模式或者多部署一个 redis 集群, 多少有点得不偿失的感觉。

提出这个问题肯定会有人拿 redis 和 zk ,etcd 对比。我的本意并非引战,而是想知道 redlock 这个解决方案是否有我没看到的“闪光弹”,在什么场景下非它不可。

ps:我日常开发中,需要用锁时也是 codis“单机锁”一把锁。不考虑啥主从同步失效(笑)

9 条回复    2023-10-07 20:33:31 +08:00
adskhf
    1
adskhf  
   2023-09-27 23:02:31 +08:00
两个条件:

1. 当我已经有一个 redis 集群的时候,我直接复用……
2. 为了性能而不是正确性使用分布式锁时
CC11001100
    2
CC11001100  
   2023-09-28 00:04:40 +08:00   1
[如果使用 redlock 的话,需要多主部署,为了一个分布式锁更改 redis 部署模式或者多部署一个 redis 集群, 多少有点得不偿失的感觉。]

是的,我之前也想过这个问题,在降本增效的大环境之下,某些不是特别重要的业务又有分布式锁的需求,到底值不值得引入一个组件来解决?投入产出到底划不划算?还是就干脆随便糊弄糊弄正确性就不管了,就看命玩俄罗斯度盘?

并发又不高又要保证正确又不想有资源浪费,后来我就想妈的干脆把数据库做成分布式锁,于是就有了这个开源项目:
https://github.com/storage-lock

项目还在开发中,常用的数据库基本都支持了,后续将逐步支持在任何能存东西的地方都能当做是一把分布式锁,目前还差文档啥的没补全,欢迎大家 flow/star 跟踪项目进度,提出意见啥的。。。
lanlanye
    3
lanlanye  
   2023-09-28 01:20:49 +08:00
我和 1 楼意见差不多,和 zk 相比的话 redis 好像没什么“非它不可”的情况,考虑正确性的话 zk 更可靠一些。
swulling
    4
swulling  
   2023-09-28 07:04:46 +08:00 via iPhone
1. 如果业务本身不用 redis ,没必要为了分布式锁引入 redlock 。用 zk 或者 etcd 更简单。

2. 哪怕业务已经用了 redis ,用单主 redis 或者 redis cluster 也能做锁,只是依赖 redis 可用性而已。对多数业务来说足够了。没必要用 redlock 。
burymme11
    5
burymme11  
   2023-09-28 10:06:45 +08:00
不会使用 redlock ,因为有些情况下,客户端是无法感知到锁被释放了。
分布式锁,各种具体实现不少的,好像没啥情况下是非 redlock 不可的吧。
vincent7245
    6
vincent7245  
   2023-09-28 10:07:01 +08:00
公司有啥就用啥,比如线上业务已经有部署 zk 集群了,那么分布式锁就用 zk ,除非不满足业务需求再引入其他的技术栈
zeonluang
    7
zeonluang  
OP
   2023-09-28 10:28:31 +08:00
@adskhf
1 redlock 需要的部署模式和常规的 redis 部署模式不相同,所以可能需要额外部署一套
你说的应该是 redis“单机锁”吧
SoviaPhilo
    8
SoviaPhilo  
   2023-09-28 14:04:08 +08:00
自从出现过 Redis 锁超时导致的问题以后我现在都只敢用 ZK 锁

redis 还是做好缓存就行了
adskhf
    9
adskhf  
   2023-10-07 20:33:31 +08:00
@zeonluang 没太懂,为啥部署模式不太一样?

我用的不是单机锁,就是用于不同实例间同步
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5636 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 27ms UTC 01:29 PVG 09:29 LAX 18:29 JFK 21:29
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86