快速对Redisson 的localCachedMap进行了下代码分析

  1. 在本地是hashmap存放,在redis是hash(hset、hget)存放
  2. 过期:Ttl及IdleMax都是指本地,redis端内容没有过期
  3. 在本地map中并不是以原始输入的key及value保存,而是转换了,包括将ttl及maxIdle作为value的一部分保存,具体可以看 class AbstractCacheMap的create函数
  4. 单个item设置为不同ttl及IdleMax修改不复杂,public abstract class AbstractCacheMap 的put及get本身是支持的,需要注意修改将ttl及maxIdle作为value的一部分put到redis及get相关过程处理
  5. 如果想在redis 的hash内每个item支持ttl及maxIdle,可以参考local的判断来实现
    在这里插入图片描述

更多推荐