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 · 2833 阅读 · 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 · 670 阅读 · 1 评论