首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-24 19:04
已编辑
北京交通大学 .NET
进字节做AI需要掌握哪些技术?
看看进字节AI需要哪些技术人才?你应该学什么?
从事AI岗需要掌握哪些技...
点赞
评论
收藏
分享
03-27 13:55
上海外国语大学 招聘专员
快手后端-Java开发一面面经
面试部门:平台服务?大概叫这个,邮件里没有,面试官说的面试时间:3月24日17:00面试时长:40分钟比较基础的一次面试,没什么压力,面试官全程比较精神涣散hhh,估计bro也是上班上累了1.Agent项目用什么做的,选型原因,Agent框架了解吗2.Agent技术组成部分理解吗,讲讲执行链路3.Skills的真实逻辑怎么写的,明白和企业的差距吗(这个之后还问了些,比较深,个人受教了,还是下去再多看看Agent吧4.讲讲项目里的难点(Agent选取了RAG来说)5.除此之外了解AI的什么?Openclaw,Transformer...八股:(比较简单)1.Redis简介,Redis为什么快2....
查看11道真题和解析
点赞
评论
收藏
分享
03-03 12:55
北京交通大学 Java
简历+boss打招呼
为啥约不到面试啊😭😭😭是我的简历问题,还是打招呼有问题大佬们,能帮忙看看简历吗?
点赞
评论
收藏
分享
03-08 18:54
武汉工程大学 新媒体运营
无实习一般学历,求简历拷打🥺
点赞
评论
收藏
分享
03-27 21:50
已编辑
东南大学 Java
3/24 字节中国交易与广告 后端一面
1、自我介绍2、介绍实习3、围绕实习问 (数据一致性、redis分片、redis集群) 20mins4、redis八股,数据结构、各个数据结构的使用场景、优劣和底层设计、redis集群、redis分布锁,何时用String和哈希,两个对比优缺点。5、手撕:hot100字符串解码
查看5道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
都在找Agent开发,我整理了80道相关的Agent开发面试题。
6638
2
...
阿里0325笔试
3199
拼多多3.29笔试
热聊中
3
...
学院本春招逆袭年包25w
3143
4
...
AI应用开发求职心得分享,怎么走才可以轻松上岸?
2983
5
...
腾讯后端复试面经
2225
6
...
前端Agent面试全攻略,个人总结,供参考
2090
7
...
AI时代,技术er的三大“职业单选题”
2090
8
...
美团笔试真是难到我了。。
1870
9
...
AI老登超级干货,AI之门就在此处
1758
10
...
3.26 美团后端暑期一面
1740
创作者周榜
更多
正在热议
更多
#
一张图晒出你司的标语
#
4459次浏览
78人参与
#
找AI工作可以去哪些公司?
#
10134次浏览
317人参与
#
米连集团26产品管培生项目
#
13482次浏览
285人参与
#
你的实习产出是真实的还是包装的?
#
20825次浏览
346人参与
#
从事AI岗需要掌握哪些技术栈?
#
9839次浏览
391人参与
#
春招至今,你的战绩如何?
#
67871次浏览
599人参与
#
厦门银行科技岗值不值得投
#
8242次浏览
188人参与
#
AI面会问哪些问题?
#
29148次浏览
633人参与
#
你做过最难的笔试是哪家公司
#
36013次浏览
315人参与
#
中国电信笔试
#
32394次浏览
302人参与
#
金三银四,你的春招进行到哪个阶段了?
#
22565次浏览
284人参与
#
投递几十家公司,到现在0offer,大家都一样吗
#
341233次浏览
2176人参与
#
同bg的你秋招战况如何?
#
212267次浏览
1121人参与
#
哪些公司真双非友好?
#
69823次浏览
289人参与
#
如何准备秋招
#
78324次浏览
868人参与
#
阿里笔试
#
179462次浏览
1324人参与
#
应届生被毁约被毁意向了怎么办
#
63354次浏览
305人参与
#
机械人避雷的岗位/公司
#
62727次浏览
393人参与
#
小马智行求职进展汇总
#
25151次浏览
80人参与
#
第一份工作一定要去大厂吗
#
15213次浏览
124人参与
#
担心入职之后被发现很菜怎么办
#
291432次浏览
1210人参与
#
为了减少AI幻觉,你注入过哪些设定?
#
26324次浏览
310人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务