SpringBoot 2.x 整合Lettuce Redis
程序员文章站
2022-04-30 19:45:54
...
SpringBoot 2.x 整合Lettuce Redis
Spring Boot2.x的到来,支持的组件越来越丰富,也越来越成熟,其中对Redis的支持不仅仅是丰富了它的API,更是替换掉底层Jedis的依赖,取而代之换成了Lettuce
Lettuce 和 Jedis的差别可见Redis 连接池Lettuce Jedis 比较
Redis介绍
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Lettuce
Lettuce 和 Jedis 的都是连接Redis Server的客户端程序。Jedis在实现上是直连redis server,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接。Lettuce基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。
导入依赖
在 pom.xml 中spring-boot-starter-data-redis的依赖,Spring Boot2.x 后底层不再是Jedis,默认是Lettuce
使用Lettuce 需要额外引用 commons-pool2 包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
属性配置
在 application.yml文件中配置如下内容,由于Spring Boot2.x 的改动,连接池相关配置需要通过spring.redis.lettuce.pool或者 spring.redis.jedis.pool 进行配置了
spring:
redis:
host: 127.0.0.1 # IP
port: 6379 # 端口号
password: 123456 # 密码
timeout: 10000
lettuce:
pool:
max-active: 8 # 连接池最大连接数
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
max-idle: 8 # 连接池中的最大空闲连接
spring.redis.host=localhost
spring.redis.password=
# 连接超时时间(毫秒)
spring.redis.timeout=10000
# Redis默认情况下有16个分片,这里配置具体使用的分片,默认是0
spring.redis.database=0
# 连接池最大连接数(使用负值表示没有限制) 默认 8
spring.redis.lettuce.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
spring.redis.lettuce.pool.max-wait=-1
# 连接池中的最大空闲连接 默认 8
spring.redis.lettuce.pool.max-idle=8
# 连接池中的最小空闲连接 默认 0
spring.redis.lettuce.pool.min-idle=0
推荐阅读
-
SpringBoot整合Druid、Redis的示例详解
-
Springboot2.X集成redis集群(Lettuce)连接的方法
-
SpringBoot 2.x 整合Lombok的方法示例
-
Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码
-
Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码
-
SpringBoot缓存详解并整合Redis架构
-
SpringBoot缓存详解并整合Redis架构
-
完整SpringBoot Cache整合redis缓存(二)
-
SpringBoot整合Redis、ApachSolr和SpringSession的示例
-
SpringBoot 整合Redis 数据库的方法