在springboot
中引入spring-boot-starter-data-redis
依赖时,默认使用的是lettuce
,有时可能我们不想使用lettuce
而是使用Jedis
来操作redis
,这就需要我们在引入spring-boot-starter-data-redis
依赖时做排除lettuce
。
这两个都是用于提供连接Redis
的客户端。
Jedis
是直接连接Redis
,非线程安全,在性能上,每个线程都去拿自己的 Jedis
实例,当连接数量增多时,资源消耗阶梯式增大,连接成本就较高了。
Lettuce
的连接是基于Netty
的,Netty
是一个多线程、事件驱动的 I/O
框架。连接实例可以在多个线程间共享,当多线程使用同一连接实例时,是线程安全的。
在
ruoyi-common\pom.xml
手动添加jedis
依赖,排除lettuce
。
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
在
application.yml
中替换配置,配置基本同上,只需要将lettuce
换成jedis
即可。
spring:
redis:
jedis:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
重新启动项目,即可实现将Redis的缓存lettuce替换成jedis
powered by kaifamiao