我是靠谱客的博主 难过鸵鸟,最近开发中收集的这篇文章主要介绍springBoot整合redis单节点、redis哨兵、redis集群配置及redisClient区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

springBoot整合redis单节点、redis哨兵、redis集群配置,redisClient jedis lettuce 区别?

1.springboot 整合redis单机模式:
spring:
redis:
database: 0 //选择数据库
host: 192.168.XX.XX //配置ip
port: 6379
password: XXXXX //redis 密码
lettuce:
pool:
max-active: 100 //设置最大活跃数
min-idle: 20 //最小连接数
max-idle: 50 //最大连接数

2.springboot 整合redis哨兵模式
spring:
redis:
password: xxxxx
timeout: 5000
sentinel:
master: mymaster //主节点name
nodes: 192.168.xx.101:6379,192.168.xx.102:6379,192.168.xx.103:6379 # 哨兵的IP:Port列表
jedis: # 或lettuce
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
3.springboot 整合redis集群模式
spring:
redis:
password: xxxxx
timeout: 5000
database: 0
cluster:
nodes: 192.168.xx.101:7100,192.168.xx.101:7200,192.168.xx.103:7300,192.168.xx.104:7400,192.168.xx.105:7500,192.168.xx.106:7600 //配置集群节点数
max-redirects: 3 # 重定向的最大次数
lettuce:
pool:
max-active: 100 //设置最大活跃数
min-idle: 20 //最小连接数
max-idle: 50 //最大连接数


Jedis:当多线程使用同一个连接时,是线程不安全的。所以要使用连接池,为每个Jedis实例分配一个连接
lettuce:是基于Netty的,连接实例可以在多个线程间并发访问,因为StatefulRedisConnection是线程安全的,所以一个连接实例(StatefulRedisConnection)就可以满足多线程环境下的并发访问,当然这个也是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例

Jedis多线程操作
Jedis本身设计不是多线程安全的,这是因为jedis设计和redis单线程相关,Jedis实例抽象的是发送命令相关,一个Jedis实例使用一个线程与使用100个线程去发送命令没有本质上的区别,所以没必要设置为线程安全的。
但是如果需要用多线程方式访问Redis服务器,那就使用多个Jedis实例,每个线程对应一个Jedis实例,而不是一个Jedis实例多个线程共享。一个Jedis关联一个Client,相当于一个客户端,Client继承了Connection,Connection维护了Socket连接,对于Socket这种昂贵的连接,一般都会做池化,Jedis提供了JedisPool。上面的连接配置实例我都是使用lettuce

最后

以上就是难过鸵鸟为你收集整理的springBoot整合redis单节点、redis哨兵、redis集群配置及redisClient区别的全部内容,希望文章能够帮你解决springBoot整合redis单节点、redis哨兵、redis集群配置及redisClient区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部