1 Star 0 Fork 0

zhaojin / spring-data-redis

加入 Gitee
与超过 800 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md

Spring Data Redis Plus(一切皆缓存)

修改自sping-data-redis

redis_plus缓存 方案(方案实例:User(用户表),UserBank(用户银行卡)):

  • 自动缓存更新方案:
  • 1、del:无需特别处理,即可确保查询最新数据(删除一条,当缓存数据List中含本条数据会导致组织失败,重新执行查询)
  • 2、update:分为两种情况,
  • a、更新了无关字段, 比如更新了用户表中昵称,则 @CachePut(key = "#p0.id") 即可
  • b、更新了有关字段,比如更新了 用户银行卡中得status为0(无效了),则:@CachePut(key = "#p0.id") 和 @Caching( evict = {@CacheEvict(key = "'&userId='+#userId+'*'")}) *附:所谓无关有关,判断条件:这个字段有没有在查询条件中,比如 用户表中昵称判断为无关业务没有基于昵称得查询否则不成功,
  • 所谓有关 ,这个字段在查询条件中,比如存在我得银行卡业务查询并缓存了 @Cacheable( key = "'&userId='+#p0+'&page='+#p1.pageNumber+'&size='+#p1.pageSize"),现在更新了status=0,则影响了这个缓存结果所以判断为这个查询有关,需要清除这个缓存
  • 3、add:也是影响查询结果集合,比如我添加了一张银行卡则: @Caching( evict = {@CacheEvict(key = "'&userId='+#p0.userId+'&*'")})
  • 4、此方案生效有几个条件
  • a、实体 存在 @Id:用于标记属性的主键(复合主键未测试) 且@CachePlus注解Bean才会触发
  • b、key得规范:&a=1&b=2&b=3 类似这样,比如查询用户得银行卡:key = "'&userId='+#p0+'&page='+#p1.pageNumber+'&size='+#p1.pageSize"
  • c、evict得key模糊匹配方案(存在才为模糊匹配方案,否则为标准key方案):&a=1&b=2&b=3&,比如用户银行添加了银行卡则evict key:key = "'&userId='+#userId+'&*'"

Docs

使用以及性能案例 传送门

简介

Spring-data-redis 加强版本,主要优化修改数据的场景下,关联缓存更新。 基本版中支持清除全部以及指定key,本方案支持 模糊匹配删除 展开 收起
Java 等 4 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/RemoteControl/spring-data-redis.git
git@gitee.com:RemoteControl/spring-data-redis.git
RemoteControl
spring-data-redis
spring-data-redis
master

搜索帮助