SpringBoot2 项目缓存从 Redis 切换到 j2cache
顶
原
荐
字数 513
阅读 0
收藏 0
RedisClient Redis J2Cache Lettuce Spring Boot
开发十年,就只剩下这套 Java 开发体系了 >>>
首先添加依赖,此处有坑。刚开始添加的是 <artifactId>j2cache-spring-boot-starter</artifactId> ,一直报错,后来发现springboot2工程需要使用 <artifactId>j2cache-spring-boot2-starter</artifactId> .
<dependency> <groupId>net.oschina.j2cache</groupId> <artifactId>j2cache-spring-boot2-starter</artifactId> <version>2.7.0-release</version> <exclusions> <exclusion> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> </exclusion> </exclusions> </dependency>
之前配置的缓存管理器及缓存RedisTemplate等 工具 都是基于Redis、Jedis的,使用了j2cache的starter后,之前的缓存配置基本上已经没有用了,需要注释掉。
之前加的spring-session-data-redis,也需要去掉或者使用使用j2cache作为缓存,也可以切换到j2cache的session方案(暂时没有尝试)。
<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency>
原cache工具类:
@Component("redisCacheUtil") public class RedisCacheUtilImpl<T> implements RedisCacheUtil<T> { @Autowired CacheManager cacheManager; }
修改后:
@Component("redisCacheUtil") @ConditionalOnClass(J2CacheAutoConfiguration.class) @AutoConfigureAfter(J2CacheCacheManger.class) public class RedisCacheUtilImpl<T> implements RedisCacheUtil<T> { private static final Logger log = LoggerFactory.getLogger(RedisCacheUtilImpl.class); @Autowired J2CacheCacheManger cacheManager; }
这里可能会报cacheManager Could not autowire,没关系,不影响。
springboot项目天生可以区分运行环境,我们可以使用j2cache-${spring.profiles.active}.properties来引用不同环境的配置。在application.yml中配置增加:
spring: cache: type: none // 原先使用redis,现在改为none j2cache: config-location: /j2cache-${spring.profiles.active}.properties redis-client: lettuce open-spring-cache: true
我们使用的redis-client为lettuce,并开启spring cache。 在j2cache.properties中,我们重点针对性修改配置:
// 广播策略 j2cache.broadcast = net.oschina.j2cache.cache.support.redis.SpringRedisPubSubPolicy // 一级缓存使用caffeine j2cache.L1.provider_class = caffeine // 二级缓存使用lettuce,和redis-client对应 j2cache.L2.provider_class = lettuce // L2配置 j2cache.L2.config_section = redis // redis缓存序列化方式,不建议配置为json,如果父类和子类有同样的属性(id),在序列化的json中会出现两个id属性,其中一个为空。使用fastjson没有此问题。另外,本人认为使用json序列化比类序列化更好,可以做到更好的反序列化兼容。 j2cache.serialization = fastjson // caffeine的配置文件位置,缓存数量及超时时间可以在里面配置 caffeine.properties = /caffeine.properties
© 著作权归作者所有
共有人打赏支持
相关文章 最新文章
J2Cache 2.7.0 在周末悄没声息的发布了!!! 该版本支持使用 Lettuce 替代 Jedis 连接 Redis ,目前二者并存,以后的版本可能会考虑直接替换掉 Jedis 。我之前不喜欢 Lettuce 是因为它依赖了...
红薯
09/15
0
0
花了点时间撸了个 MyBatis 的 J2Cache 支持模块,含注释共八十多行代码 (J2CacheAdapter.java),再有 Bug 我就真的要退役了。 使用方法很简单,请看 https://gitee.com/ld/J2Cache/tree/mast...
红薯
05/15
0
30
J2Cache 2.5.5 发布了,该版本主要改进内容包括: 完善对 Redis Sentinel 的 pub/sub 支持 修复了 json 序列化不支持 java.sql.Date 和 java.sql.Timestamp 的问题 修复 Spring Boot 模块的序...
红薯
09/06
0
0
J2Cache 推出至今,已有多人希望能提供二级缓存只读模式,相当于应用只能从 Redis 二级缓存读取数据,而不允许写入任何数据,包括当一级缓存失效时也不能去清除二级缓存的数据。这样的开发者...
红薯
04/27
0
0
想了解 J2Cache 是一个什么开源项目,请阅读 这篇博客。 J2Cache 刚新增对 Hibernate 5 的支持,提供了 j2cache-hibernate5 模块,可以方便在 Hibernate 5 中启用 J2Cache 缓存。 该模块由 ...
红薯
今天
0
1
没有更多内容
加载失败,请刷新页面
加载更多datetime设置为当前时间:create_date = models.DateTimeField(auto_now=True); 数据库时间不匹配问题:修改settings.py 的配置 USE_TZ=False; 生成的数据库表自定义:在models.py中添加如下...
年轻的中年大叔
14分钟前
1
0
之前同事问了我一个有趣的问题,说为什么这个 json 字符串从缓存里读出来可以解析,但是作为一个 php 变量却解析错误呢? 先看一个我已经简化了的例子 $str = "\\";$j = json_encode($str)...
anoty
17分钟前
3
0
How to Backup SAP HANA Database using Command Line Updated on January 7, 2014 by Rahul K. Databases SAP HANA is an in-memory data platform that is deployable as an on-premise ap......
rootliu
17分钟前
1
0
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 原文出处:https://www.grapecity.com.cn/blogs/wijmo-depth-overview-progressive-web-app...
葡萄城技术团队
26分钟前
2
0
Greenplum是什么鬼?干啥用的?能吃吗? 下面是来自官网的一段英文: 大概翻译一下: Greenplum Database是一个大规模并行处理(MPP)数据库服务器,其架构专门用于管理大规模分析数据仓库和...
AmCoder
28分钟前
1
0
没有更多内容
加载失败,请刷新页面
加载更多以上所述就是小编给大家介绍的《原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- vue+vuex+axios 仿原生app切换效果和路由缓存实践
- 小说精品屋 - plus v2.2.0 发布,集群支持,一行配置切换 Redis 分布式缓存
- Egret场景切换管理类切换和单例使用方法
- Spring项目中使用两种方法动态切换数据源,多数据源切换
- Pear Admin Ant 1.1.0.Release 正式发布,新增布局切换、主题切换、工作空间
- MySQL -- 主从切换
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。