转载

原 荐 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
正文到此结束
Loading...