对set NX实现分布式锁有个疑问

来源:4-4 如何实现分布式锁

cqxing

2019-01-26

set locktarget 12345 ex 10 nx

老师您好,如上语句,如果A客户端在10秒内还未执行完对共享数据的操作,此时B客户端也能获取锁,然后对共享数据做操作了,这不是会有问题的吗?

写回答

3回答

qq_郭靖_03148326

2019-05-27

看到用这种方式来当分布式锁就很怀疑老师的经验和水平了.如果真是干货,老师大可以说一下自己平时在项目中是怎么做的.然而并没有.好像只是把网上的面试题用视频收费的方式来演绎出来了而已.

1
1
翔仔
对于你的评价我不打算去证明什么,我只想说我在专心做课程,本章涉及的是Redis,主要考察Redis相关的知识,其中一个就是主流常用的分布式锁,针对这个分布式锁,可以使用Setnx简单实现,我项目里面也有使用类似的功能去满足内部福利抢购等简单需求,但是我觉得如果为了单单这个问题,或者所有问题,都从我的项目(涉密)从0开始说起,然后再介绍到结合我项目的需求分析为什么要用到这个技术,像这里为什么不用zookeeper,mysql集群或者其他缓存去实现分布式锁就会舍本逐末,搞不清重点,而且整个课程变成跨年也不为过。我只能说清者自清,我讲解的内容主要针对高效备战面试,并且也穿插了各种各样的实践,但是主要还是为理论服务,而且网络的知识参差不齐,我只是像尽我的一份力量去帮助大家梳理。萝卜青菜,各有所爱,也请就事论事,不要以课程论人的好坏,课程不好可以提,如果实在接受不了,建议参照慕课网的政策进行退款处理,祝好。
2019-05-27
共1条回复

翔仔

2019-01-27

同学好,这个属于业务层的逻辑,咱们底层这些机制也是需要配合上层使用才能发挥作用的,此时需要调大相关的时间,其实也可以动态调整,即根据上层应用的一些信号量来确定是否能够去做共享数据的更新操作。

1
4
qq_谁动了我的奶酪_03546962
回复
翔仔
受教了!谢谢~~
2019-03-21
共4条回复

慕沐7580699

2019-01-26

这个要根据业务场景来决定

0
1
翔仔
感谢同学的热心回答
2019-01-27
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程