用 redis 做分布式锁这种骚操作是怎么流行起来的?

2021-03-08 13:49:19 +08:00
 nagatoism
Redis 根本就不是设计出来干这个的,为什么网上这么多垃圾文章讲这个?

老老实实用 ZK 或者 ETCD 不好吗?

感觉大量的垃圾技术文章的内容都可以总结为三句

1 我没读文档瞎 jb 用,结果不符合预期。
2 出 bug 了受不了才老老实实读文档,原来是我用的不对。
3 按照文章老老实实的写代码,终于对了。


看多了会觉得中文技术社区真是垃圾堆。
22345 次点击
所在节点    程序员
159 条回复
liprais
2021-03-08 14:39:06 +08:00
redlock 都多少年前就确认有逻辑漏洞的东西了还敢用
emSaVya
2021-03-08 14:39:21 +08:00
@wucao219101 再回复一下 redlock 依赖系统时钟 原理上就不适用
cheng6563
2021-03-08 14:40:30 +08:00
那用 MYSQL 做的呢 狗头
KarmaWu
2021-03-08 14:46:02 +08:00
线上用官方推荐的 Redisson 作为分布式锁工具,暂时没有任何问题
Yourshell
2021-03-08 14:49:46 +08:00
怎么说呢,你的行为给这个垃圾堆多扔了一件垃圾。
mxT52CRuqR6o5
2021-03-08 14:57:38 +08:00
不是有大佬就 redlock 到底可不可靠吵过吗,好像确实不是绝对可靠的吧
zproo
2021-03-08 15:10:25 +08:00
@wucao219101 楼主你怎么不说话😂 @nagatoism
nagatoism
2021-03-08 15:12:53 +08:00
@wucao219101     你这个链接拉到底就知道为什么 redlock 不可靠了
liudaolunhuibl
2021-03-08 15:48:52 +08:00
我觉得程序员应该向历史学家和作家学习一下,下任何结论前一定要去详细考证一下,1L 的官网链接不难找把随手谷歌一下就有了的东西也没有去考证就擅自下结论
liprais
2021-03-08 15:51:00 +08:00
@liudaolunhuibl 你显然没看过官网的这一页也没看过几年前关于 redlock 的讨论,就来指责别人没详细考证.......
vipppppp
2021-03-08 15:53:32 +08:00
呃在分布式 redis 下确实依赖系统时钟,有一些漏洞
但在一些能容忍错误的情景下,我觉得 redis 分布式锁还是很适合的,毕竟如果单纯只是为了一些不重要的业务增加维护 etcd 或者 zk 集群的成本十分不值得。
例如我主从模式下,我希望用户一段时间不要重复获取验证码,但即使他重复获取了也能够接受。

具体情景要具体分析,一上来就喷有点离谱
就像 python 语言在并发方面比较弱,但如果系统需要集成某些算法(人脸、NLP 等),或者各种线性代数的运算,那么它就是一个很好的选择
opengps
2021-03-08 15:55:00 +08:00
能被流行必然有某种优势,在分布式用法中,高性能的锁 redis 还真是数得上的
intmax2147483647
2021-03-08 16:20:11 +08:00
真是挺降智的,实现一个功能的途径不只有一种,在指责它的用法的时候先去总结一下这么做的优缺点,而不是一句“它设计出来就不是干这个的”。 很多东西的使用都不一定是一开始设计出来定好的,还有,一楼打脸下手很重
Jooooooooo
2021-03-08 16:25:07 +08:00
我们规模很大, 用的挺好的. (一天数千万单都用这个做锁

真要讲, zk 才不是干这个的.
xiangbohua
2021-03-08 16:27:42 +08:00
redis 作者曾经和某个分布式系统大佬 battle 过分布式锁的各种模型。所以我估计作者是有考虑过这个场景的
zhengwenk
2021-03-08 16:28:37 +08:00
etcd 是 CoreOS 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd 也不是为了作为分布式锁来设计的吧。ZK 是么?所以为什么用 redis 就变成骚操作
iseki
2021-03-08 16:28:56 +08:00
redlock 存在的问题其他分布式锁依旧存在,只要它具有类似 Redlock 的特性,比如超时失效;感觉这个问题根本是逻辑上不能避免的
iseki
2021-03-08 16:29:45 +08:00
与其喷各种实现,不如想清楚自己需要什么,做出合理的选择就完了
xiangbohua
2021-03-08 16:30:42 +08:00
@monsterxx03 redis 作者和某个大佬讨论了分布式锁的各种模型,被指出 redlock 存在一定几率锁失效(条件蛮极端的,好像和时间线有关系,暂时不是很清楚,大佬可以解释一下)。但是我觉得吧,小公司就别纠结这个了,那么点量,都不见得能触发这种几率
fuis
2021-03-08 16:31:05 +08:00
“看多了会觉得中文技术社区真是垃圾堆。”
看看这楼里的回复就知道为什么中文技术社区是垃圾堆了,我挺楼主

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/759583

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX