首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
无情的招聘机器
淘天集团_天猫技术_Java开发工程师
发布于北京
关注
已关注
取消关注
@Java大湿兄:
Java常见面试题:如何使用Redis实现分布式锁?
首先来说 Redis 作为一个独立的三方系统,其天生的优势就是可以作为一个分布式系统来使用,因此使用 Redis 实现的锁都是分布式锁,理解了这个概念才能看懂本文所说的内容。分布式锁的示意图,如下所示:分布式锁实现使用 Redis 实现分布式锁,可以通过 setnx(set if not exists)命令实现,当我们使用 setnx 创建键值成功时,则表明加锁成功,否则既代码加锁失败。因为 Redis 主线程是单线程运行的,所以也不会有同时加锁成功的情况。实现命令如下:127.0.0.1:6379> setnx lock true(integer) 1 #创建锁成功#逻辑业务处理...127.0.0.1:6379> del lock(integer) 1 #释放锁当我们重复加锁时执行结果如下:127.0.0.1:6379> setnx lock true # 第一次加锁(integer) 1127.0.0.1:6379> setnx lock true # 第二次加锁(integer) 0从上述命令中可以看出,我们可以使用执行的结果是否为 1 来判断加锁是否成功。分布锁问题然而,使用 setnx 实现分布锁有一个【死锁问题】,就是当加锁的线程(或应用)掉电或崩溃之后,其他线程只能无限等待下去的问题。此时,我们解决死锁问题可以通过添加设置锁的过期时间来实现。也就是 setnx 和 expire 配合使用,在 Redis 2.6.12 版本之后,新增了一个强大的功能,我们可以使用一个原子操作也就是一条命令来执行 setnx 和 expire 操作了,实现命令如下:127.0.0.1:6379> set lock true ex 30 nxOK #创建锁成功127.0.0.1:6379> set lock true ex 30 nx(nil) #在锁被占用的时候,企图获取锁失败其中 ex 为设置超时时间, nx 为元素非空判断,用来判断是否能正常使用锁的。小结Redis 作为一个独立的三方系统,其优势是天生可以实现分布式锁。它实现分布式锁是通过 setnx 来实现的,然而只有 nx(not exists)可能会发生死锁的问题,所以我们最终实现死锁应该使用 set nx ex 的方式来实现。小思考:当设置了过期时间之后,Redis 实现分布式依然会有一个小小的问题,有人知道这个问题和解决方案吗?欢迎评论区写出你的答案。此文章点赞过 100,我会给出标准答案。
点赞 2
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
03-22 15:01
吉林农业大学 算法工程师
超聚变数字技术 AI Agent 开发一面
1、讲讲什么是 RAGRAG 是 Retrieval-Augmented Generation,也就是检索增强生成。它的核心思想不是只靠大模型参数里记住的知识回答问题,而是在回答之前,先去外部知识库里检索和当前问题相关的内容,再把检索结果作为上下文交给模型生成答案。完整流程一般分两部分。离线侧先做文档接入、清洗、切片、向量化和索引构建,把知识变成可检索的形式。在线侧收到用户问题后,先做 query 改写或纠错,再去知识库召回相关片段,必要时做 rerank 重排,最后把用户问题和证据一起送给模型生成。RAG 的价值主要有三个:让模型获得训练时没有的外部知识让知识更新不依赖重新训练模型让回答更容...
AI-Agent面试实战...
点赞
评论
收藏
分享
01-30 09:45
燕山大学 Java
实习六个月就得到这个结果😃
喵_coding:
这种直接跑就完事了 哪有毕业了才签合同 任何offer和三方都没有的
点赞
评论
收藏
分享
昨天 15:20
华南理工大学 算法工程师
关于最近这一个月面试的一些感受
本人大三,在找日常(暑期)实习,年后这一个月面了几家大厂,但都挂了,有的直接在初筛阶段就给我踢了。最好的就是字节进了二面(字节实习生一般三轮:技术面、主管面、HR 面),二面结束以后我过几个小时就点开邮件看看,心想这次一定要拿下,如果能进 HR 面的话基本就稳了。我面完当天晚上做梦都梦到拿到了 offer 给我乐醒了,打开手机一看原来是梦。第二天打开邮件收到了感谢信,心情直接跌到谷底。这几天一直在自我怀疑,就在想每天这起早贪黑的,睁眼闭眼就是算法代码,到头来还是一场空,真觉得挺没意思的。我的性格一直比较要强好胜,我太想要一个机会来证明自己,但是没有办法,无论是我的学历,学校,还是学术项目,竞赛...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
双非选手的求职的感悟
2758
2
...
美团暑期实习一面
2735
美团笔试好难
热聊中
3
...
阿里笔试竟然考了AI提示词。。。
2108
4
...
暑期结束,拥抱腾讯了
1683
中国电信328笔试
热聊中
5
...
双非两段大厂实习0offer,我做对了什么
1620
6
...
携程3.25Java开发二面面经
1596
7
...
字节一面-飞书后端暑期实习
1507
8
...
京东零售暑期一面
1329
9
...
快手暑期前端一面 3.25
1162
10
...
感谢信
1099
创作者周榜
更多
正在热议
更多
#
AI面会问哪些问题?
#
25633次浏览
510人参与
#
中国电信笔试
#
31293次浏览
283人参与
#
开放七大实习专项,百度暑期实习值得冲吗
#
14334次浏览
210人参与
#
你的实习产出是真实的还是包装的?
#
19059次浏览
332人参与
#
如果秋招能重来,我会____
#
96774次浏览
500人参与
#
春招至今,你的战绩如何?
#
61092次浏览
556人参与
#
米连集团26产品管培生项目
#
13018次浏览
285人参与
#
i人适合做什么工作
#
36972次浏览
124人参与
#
我是面试官,请用一句话让我破防
#
79592次浏览
219人参与
#
金三银四,你的春招进行到哪个阶段了?
#
21635次浏览
280人参与
#
哪些公司真双非友好?
#
69321次浏览
287人参与
#
投递几十家公司,到现在0offer,大家都一样吗
#
340151次浏览
2169人参与
#
找AI工作可以去哪些公司?
#
8054次浏览
203人参与
#
从事AI岗需要掌握哪些技术栈?
#
8011次浏览
265人参与
#
面试尴尬现场
#
220847次浏览
861人参与
#
五一之后,实习真的很难找吗?
#
102830次浏览
584人参与
#
你做过最难的笔试是哪家公司
#
30988次浏览
203人参与
#
应届生第一份工资要多少合适
#
20552次浏览
86人参与
#
聊聊你的职场新体验
#
336142次浏览
1893人参与
#
你小时候最想从事什么职业
#
159861次浏览
2072人参与
#
阿里笔试
#
176914次浏览
1304人参与
#
一张图晒出你司的标语
#
3944次浏览
73人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务