一、背景
作为一名Java后端开发工程师,日常写Redis缓存的操作的类,可能大部分场景下用的都是RedisTemplate的设计和实现,与CacheManager这种注解集成后,也会用它作为实现,那么今天我给大家分享一种最近学习到的设计和实现,他来自于开源项目中的的代码,基于Redisson这种封装了CacheManager的实现,替换了RedisTemplate,感兴趣的可以尝试试用下,这样就不必为了jedis还是luttuce的redistemplate切换问题头疼了。
二、RuoYi-Vue-Plus介绍
RuoYi-Vue-Plus 是针对 RuoYi-Vue 进行了相关的重写,针对 分布式集群 场景全方位升级(不兼容原框架)的一个后端快速开发框架。
开源主页地址:gitee.com/dromara/Ruo…
RuoYi-Vue-Plus项目目前也加入了dromara开源社区。
为啥我想介绍这个后端快速开发平台呢?因为最近在做公司项目的时候,需要进行某项业务需求的快速环境搭建和开发,同时做些技术上的升级和预研,所以这里选择了这个,虽然他是一个后端CRUD类型的管理端的平台,但是某些小的设计思想和实现也是可以学习的,毕竟老是用一种后端框架去做业务开发,多少会把自己限制死吧,多多去新世界了解一下玩法还是不错的,这个框架和原始ruoyi的区别如下:

三、基于Redisson封装的CacheManager
这个项目中采用了Redisson(基于Netty的客户端工具 ),据说支持Redis 90%以上的命令等
并采用 了Spring-Cache 注解 对其扩展了实现支持了更多功能,例如:
过期时间
最大空闲时间
组最大长度等
只需一个注解即可完成数据自动缓存
3.1、PlusSpringCacheManager类定义
在项目根目录下的ruoyi-framework工程下的src的源码包com.ruoyi.framework.manager中,存在这样一个类:
ini
复制代码
package com.ruoyi.framework.manager; import com.ruoyi.common.utils.redis.RedisUtils; import org.redisson.api.RMap; import org.redisson.api.RMapCache; import org.redisson.spring.cache.CacheConfig; import org.redisson.spring.cache.RedissonCache; import org.springframework.boot.convert.DurationStyle; import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; import org.springframework.cache.transaction.TransactionAwareCacheDecorator; import org.springframework.util.StringUtils; import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; /** * A {@link org.springframework.cache.CacheManager} implementation * backed by Redisson instance. * <p> * 修改 RedissonSpringCacheManager 源码 * 重写 cacheName 处理方法 支持多参数 * */ @SuppressWarnings("unchecked") p

本文介绍了如何在Java后端开发中使用Redisson封装的CacheManager替代传统RedisTemplate,通过Spring-Cache注解实现动态缓存配置,以及RuoYi-Vue-Plus框架的使用,展示了如何利用Redisson进行分布式缓存管理和过期策略。
最低0.47元/天 解锁文章
1760

被折叠的 条评论
为什么被折叠?



