SpringBoot 2.x 整合Lettuce Redis

左手的ㄟ右手 2022-01-31 08:49 518阅读 0赞

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

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-redis</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.apache.commons</groupId>
  7. <artifactId>commons-pool2</artifactId>
  8. </dependency>

属性配置

在 application.yml文件中配置如下内容,由于Spring Boot2.x 的改动,连接池相关配置需要通过spring.redis.lettuce.pool或者 spring.redis.jedis.pool 进行配置了

  1. spring:
  2. redis:
  3. host: 127.0.0.1 # IP
  4. port: 6379 # 端口号
  5. password: 123456 # 密码
  6. timeout: 10000
  7. lettuce:
  8. pool:
  9. max-active: 8 # 连接池最大连接数
  10. max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
  11. min-idle: 0 # 连接池中的最小空闲连接
  12. max-idle: 8 # 连接池中的最大空闲连接
  13. spring.redis.host=localhost
  14. spring.redis.password=
  15. # 连接超时时间(毫秒)
  16. spring.redis.timeout=10000
  17. # Redis默认情况下有16个分片,这里配置具体使用的分片,默认是0
  18. spring.redis.database=0
  19. # 连接池最大连接数(使用负值表示没有限制) 默认 8
  20. spring.redis.lettuce.pool.max-active=8
  21. # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
  22. spring.redis.lettuce.pool.max-wait=-1
  23. # 连接池中的最大空闲连接 默认 8
  24. spring.redis.lettuce.pool.max-idle=8
  25. # 连接池中的最小空闲连接 默认 0
  26. spring.redis.lettuce.pool.min-idle=0

发表评论

表情:
评论列表 (有 0 条评论,518人围观)

还没有评论,来说两句吧...

相关阅读

    相关 springboot2.X整合redis

    趁着今天休息就学习了一下redis,刚开始配置的时候遇到一些坑,现在写下来记一下,首先springboot使用的版本是2.X(我使用的是2.1.6)我的是在本地配置的,环境是w