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

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

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

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

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


看多了会觉得中文技术社区真是垃圾堆。
20802 次点击
所在节点    程序员
159 条回复
wucao219101
2021-03-08 13:54:54 +08:00
官方的推荐用法怎么是骚操作?
https://redis.io/topics/distlock
Xbluer
2021-03-08 13:55:42 +08:00
「 Redis 根本就不是设计出来干这个的」
看看官网这篇文章 https://redis.io/topics/distlock
learningman
2021-03-08 13:56:19 +08:00
英文这样的垃圾文章不也挺多的。。。StackOverflow 上不也那么多 Why noy Google 的问题
wakzz
2021-03-08 13:57:07 +08:00
因为 redis 性能高哇,ZK 跟 ETCD 在高并发场景试试,分分钟成为瓶颈。

垃圾文章确实,这几年垃圾文章暴增,各种复制粘贴水平低下,看着标题都懒得点了
Kinnice
2021-03-08 13:58:07 +08:00
官方推荐的
janxin
2021-03-08 14:00:56 +08:00
看来没踩过 etcd 的坑 2333
npe
2021-03-08 14:01:26 +08:00
helone
2021-03-08 14:03:14 +08:00
别人讲的不一定是对的,但是我觉得在下结论前,可以自己试试高并发场景下 zk 、etcd 、redis 做分布式锁的优势与劣势
fatedier
2021-03-08 14:06:29 +08:00
戾气太重~ 尽量表达自己的观点就好,很多问题都不是是非题,没有绝对答案
qwerthhusn
2021-03-08 14:07:29 +08:00
我为了一个分布式锁,要再引入一个部件??
dqzcwxb
2021-03-08 14:08:12 +08:00
你是对的
qq1340691923
2021-03-08 14:10:38 +08:00
要考虑可维护性的,不能说你想用哪个组件就直接用,要看分析对各个组件的熟悉度
672795574
2021-03-08 14:11:24 +08:00
架构设计没有银弹, 只有适合业务的选型 设计 架构,不然还要架构师做什么,所有公司一套方案打天下?
fo2w
2021-03-08 14:13:06 +08:00
一楼就下手这么重我是没想到的
monsterxx03
2021-03-08 14:23:10 +08:00
有效讨论: 用 xxx 的问题在哪, yyy 在 zzz 的场景下比 xxx 强在哪里.
无效讨论: xxx 垃圾

回到用 redis 做锁的问题, 如果是单机 redis 用 setnx 做一个中心试锁, 在可用性要求不是特别极端的业务里未尝不可, 毕竟很多人运维的分布式系统未必有单机靠谱...

redlock 算法争议一直有, 我是不建议用的, 印象里这个算法的争议在于依赖系统时间的一致性. 比较严谨的分布式系统一般会用 Lamport timestamp 做逻辑时间(实现上就是一个单调递增的 counter).
bianzhifu
2021-03-08 14:25:14 +08:00
一楼这种动不动就上官网链接的行为(伤害性不高,侮辱性极强)
NaVient
2021-03-08 14:30:10 +08:00
最后还鄙视下中文社区....其他的不说,哪个社区没有垃圾文章?
kiripeng
2021-03-08 14:30:56 +08:00
没有最好的技术,只有合适的场景。
而且这种无效的脾气帖子,没啥软用
swulling
2021-03-08 14:33:22 +08:00
不过官方的 redlock 实现至少需要 3 个独立的 redis 实例,成本真的有点昂贵

但是想一想 zk 或者 etcd 不也需要三个么,就感觉还好~~

当然新的选型还是用 etcd 更合适一些,毕竟代码写起来简单,zk 就别用了
emSaVya
2021-03-08 14:37:01 +08:00
@bianzhifu redis 做分布式锁本来就是不合适的 官网文章很多问题 redis 作者自己都承认有漏洞
要嘛 小公司拿个单点的 redis 随便玩玩 要嘛 老老实实 zookeeper

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

https://www.v2ex.com/t/759583

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

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

© 2021 V2EX