Redis#架构师面试题
创始人
2024-11-17 19:32:33
0

1、Redis锁存在哪些问题及如何解决?

1、死锁问题

加过期时间设定

2、原子性问题

通过“set…nx...ex…”命令,将加锁、过期命令编排到一起,它们是原子操作了,可以避免死锁。

3、释放其他线程的锁问题

当过期时间设置小于线程执行时间时,因锁过期被其他线程重新获取,前面的线程删掉的是其他线程的锁。

解决:

  • 通过在value添加线程标识来解决,释放锁的时候进行线程标识判断,只删除属于自己的锁。这里又存在了原子性的问题,可以通过lua脚本或者直接使用Redisson框架解决。
  • 使用看门狗进行锁续期

4、可重入锁问题

redisson组件已经解决。

5、锁竞争问题

并发量大的时候,会降低系统并发性能。

解决:

  • 锁细化;
  • 乐观锁;
  • 读写锁;

2、缓存和数据库的数据一致性怎么解决?

1、先删缓存,再删数据库,再延迟(避免删除之前读到数据老数据的若干线程还没有将结果写入缓存,此时就会出现无效删除删一次缓存;

2、先删数据库,再删缓存(如果删除失败支持重试(可以发送给MQ))

删除缓存的操作可以通过cannal监听数据更新问题通知springboot应用进行删除来实现。

总结:推荐使用方法2,因为方法1中的延迟删除也可能会失败。相对来说方法2更简单有效。

相关内容

热门资讯

确实有挂!wepoker正确养... 确实有挂!wepoker正确养号方法,川娱竞技插件,细节方法(一直确实有挂);川娱竞技插件免费下载原...
真的是有挂!wepoker透视... 真的是有挂!wepoker透视器免费,皮皮辅助软件演示,揭秘教程(果然真的是有挂);AI辅助机器人普...
是有挂的!竞技联盟透视插件,奇... 【福星临门,好运相随】;是有挂的!竞技联盟透视插件,奇迹手游辅助,大神讲解(其实是有挂的);暗藏猫腻...
确实有挂!sohoo开挂辅助,... 确实有挂!sohoo开挂辅助,山西奇迹打锅子辅助,线上教程(一直确实有挂);山西奇迹打锅子辅助中的1...
真的是有挂!wepoker怎么... 【福星临门,好运相随】;真的是有挂!wepoker怎么挂底牌,吉祥填大坑攻略,我来教教你(一直真的是...
确实有挂!来玩app破解版,圣... 确实有挂!来玩app破解版,圣游辅助软件,线上教程(果然确实有挂);1、不需要AI权限,帮助你快速的...
确实有挂!wepoker辅助插... 确实有挂!wepoker辅助插件功能,广西友乐辅助器,AI教程(一贯确实有挂);大家肯定在之前广西友...
真的是有挂!hhpoker辅助... 真的是有挂!hhpoker辅助软件是真的么,皮皮胡子辅助,必胜教程(一贯真的是有挂);皮皮胡子辅助中...
有挂!德扑之心免费透视,蜀山四... 有挂!德扑之心免费透视,蜀山四川小程序辅助开挂,2026新版总结(原来有挂),蜀山四川小程序辅助开挂...
是有挂的!hhpoker辅助靠... 是有挂的!hhpoker辅助靠谱吗,九神大厅辅助,可靠教程(一直是有挂的);九神大厅辅助软件透视开挂...