
Java学习分享
文章平均质量分 92
kino05
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redisson+caffeine+redis分布式(异步通知)二级缓存方案
目录 方案设计的场景 代码实现 结束语 方案设计的场景 项目中以redis为主要数据源,所有查询都查询redis以提高程序并发能力。数据库仅做为持久化数据备份,当redis出现宕机情况,可以从数据库中恢复数据。 提问:为什么不使用redis自带的持久化文件进行恢复? redis持久化策略有两种AOF、RDB,AOF是将每一条操作命令记录到文件中,配置上默认是每秒一次写入文件,AOF文件过大时可以使用rewrite进行指令整理;RDB是redis数据快照,有save和bgsave两种方式生成RD原创 2021-03-13 15:59:20 · 3188 阅读 · 1 评论 -
redisson 实现分布式锁的原理,源码分析
先上图,加锁场景和解锁场景。 加锁逻辑: redisson使用lua脚本操作redis来进行加锁,因为lua脚本中的代码逻辑在redis中执行能够保证原子性。 这个lua脚本就是加锁的核心代码,分析一下内容。 KEYS[1]就是要加锁的key,ARGV[1]是加锁超时时间,ARGV[2]是加锁线程唯一标识。 首先判断key是否存在; 若不存在则代表无锁状态,接下来设置锁信息,field为线程唯一标识,value是加锁次数,然后设置key的超时时间,最后返回nil,意味着获得了锁。 .原创 2021-03-13 15:37:15 · 742 阅读 · 1 评论