原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache

JillLiu的个人空间

Java

正文

原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache

SpringBoot2 项目缓存从 Redis 切换到 j2cache

原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache

  JillLiu

发布于 3分钟前

字数 513

阅读 0

收藏 0

RedisClient
Redis
J2Cache
Lettuce
Spring Boot

开发十年,就只剩下这套Java开发体系了
>>>
原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache

首先添加依赖,此处有坑。刚开始添加的是 <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

© 著作权归作者所有

共有人打赏支持

原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache

JillLiu

粉丝 8

博文 13

码字总数 2856

作品 0


西安


高级程序员

相关文章
最新文章

J2Cache 2.7.0 发布了,支持 Lettuce 替代 Jedis

J2Cache 2.7.0 在周末悄没声息的发布了!!! 该版本支持使用 Lettuce 替代 Jedis 连接 Redis ,目前二者并存,以后的版本可能会考虑直接替换掉 Jedis 。我之前不喜欢 Lettuce 是因为它依赖了…

红薯

09/15


0


0

J2Cache 新增 Mybatis 支持模块,代码少到没 Bug

花了点时间撸了个 MyBatis 的 J2Cache 支持模块,含注释共八十多行代码 (J2CacheAdapter.java),再有 Bug 我就真的要退役了。 使用方法很简单,请看 https://gitee.com/ld/J2Cache/tree/mast…

红薯

05/15


0


30

J2Cache 2.5.5 发布,完善对 Sentinel 的 pub/sub 支持

J2Cache 2.5.5 发布了,该版本主要改进内容包括: 完善对 Redis Sentinel 的 pub/sub 支持 修复了 json 序列化不支持 java.sql.Date 和 java.sql.Timestamp 的问题 修复 Spring Boot 模块的序…

红薯

09/06


0


0

J2Cache 2.3.12 发布,支持二级缓存只读模式

J2Cache 推出至今,已有多人希望能提供二级缓存只读模式,相当于应用只能从 Redis 二级缓存读取数据,而不允许写入任何数据,包括当一级缓存失效时也不能去清除二级缓存的数据。这样的开发者

红薯

04/27


0


0

J2Cache 新增 Hibernate 5 支持,感谢 @tandy 贡献

想了解 J2Cache 是一个什么开源项目,请阅读 这篇博客。 J2Cache 刚新增对 Hibernate 5 的支持,提供了 j2cache-hibernate5 模块,可以方便在 Hibernate 5 中启用 J2Cache 缓存。 该模块由 …

红薯

今天


0


1

没有更多内容

加载失败,请刷新页面

加载更多

Django 学习笔记

datetime设置为当前时间:create_date = models.DateTimeField(auto_now=True); 数据库时间不匹配问题:修改settings.py 的配置 USE_TZ=False; 生成的数据库表自定义:在models.py中添加如下…

年轻的中年大叔

14分钟前


1


0

一次有趣的 php json_decode error 分析

之前同事问了我一个有趣的问题,说为什么这个 json 字符串从缓存里读出来可以解析,但是作为一个 php 变量却解析错误呢? 先看一个我已经简化了的例子 $str = "//";$j = json_encode($str)…

anoty

17分钟前


3


0

原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache

How to Backup SAP HANA Database using Command Line

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

渐进式Web应用程序的深入概述

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 原文出处:https://www.grapecity.com.cn/blogs/wijmo-depth-overview-progressive-web-app…

葡萄城技术团队

26分钟前


2


0

原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache

关于Greenplum的一些事儿

Greenplum是什么鬼?干啥用的?能吃吗? 下面是来自官网的一段英文: 大概翻译一下: Greenplum Database是一个大规模并行处理(MPP)数据库服务器,其架构专门用于管理大规模分析数据仓库和…

AmCoder

28分钟前


1


0

原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache

没有更多内容

加载失败,请刷新页面

加载更多

原文 

https://my.oschina.net/desert/blog/2218535

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 原 荐 SpringBoot2 项目缓存从 Redis 切换到 j2cache

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址