springboot集成redis集群(单节点转集群需要排除冲突依赖)

8 篇文章 1 订阅

目录

如果需要配置文件详解请看我的文章

redis集群脚本

springboot单redis切换到redis集群无故出错解决


如果需要配置文件详解请看我的文章

redis&&哨兵集群部署 docker单机模拟-六节点_年关的博客-CSDN博客

redis集群脚本

这个集群是三主三从的集群,不需要哨兵,因为集群模式自带了分片和故障转移,脚本不重要,重要的是脚本生成的配置文件,使用这个配置文件生成redis就可以,在最后手动建立集群就可以了

难点讲解 

        1、除了服务端口外,集群之间进行通信也需要一个总线端口,用来检测服务状态和故障转移,一般是服务端口+10000的端口,注意防火墙放行

        2、集群模式和哨兵模式的区别,集群自己集成了状态检测和故障转移,就不用哨兵了,集群数据是分片存储的,这个还是百度吧,懒得打字了。

        3、集群只有超过一半的节点在线才能继续切换主从,三个节点允许掉线一个节点,五个才允许掉线两个节点,并且只有主节点参与投票。从节点不参与,所以要允许两个同时掉线并切换至少需要五个主节点,以及各自一个从节点。

        4、建立集群的语句,主节点是按照顺序来排列的,如果都是主机的话,从节点也是一一对应的,但如果从节点和某个主节点在同一台机子上,redis在建立集群的时候就不会把他们建立主从关系,而是将这个从节点作为其他节点的从节点。

#批量部署

for port in $(seq 8001 8010); \
do \
mkdir -p /root/data/redis${port}/data
mkdir -p /root/data/redis${port}/conf
touch /root/data/redis${port}/conf/redis.conf
cat << EOF >/root/data/redis${port}/conf/redis.conf
#这里面是配置文件
#如果想要指定IP访问权限请打开保护模式并指定bind
#只允许ip访问
#bind 0.0.0.0
#关闭保护模式
protected-mode no
#服务端口
port ${port}
#日志
logfile "/data/redis${port}.log"
#pid
pidfile "/data/redis${port}.pid"
#关闭集群模式才能手动加入主从
cluster-enabled yes
#节点配置文件
cluster-config-file nodes${port}.conf
#宕机主备切换时间
cluster-node-timeout 5000
#本机ip
cluster-announce-ip 192.168.5.242
#集群映射端口
cluster-announce-port ${port}
#集群通信端口
cluster-announce-bus-port 1${port}
# 开启AOF
appendonly yes
#配置本机密码
requirepass 123456
#从节点配置主节点ip端口密码
#slaveof 192.168.5.242 8001
#配置主节点数据
#replicaof 192.168.5.242 8001
#配置同步验证密码主从或者集群用
masterauth 123456
EOF
chmod 777 -f /root/data/redis${port}/* 
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} \
-v /root/data/redis${port}/data:/data \
-v /root/data/redis${port}/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf; \
done
echo "请手动进入节点“docker exec -it redis-8001 bash”,执行建成集群命令“redis-cli -a 123456 --cluster create 192.168.5.242:8001 192.168.5.242:8002 192.168.5.242:8003 192.168.5.242:8004 192.168.5.242:8005 192.168.5.242:8006 --cluster-replicas 1 \n
yes”"

springboot单redis切换到redis集群无故出错解决

配置文件更改

单节点

spring.redis.host=192.168.1.1
spring.redis.port=6379

多节点的话改成

spring.redis.cluster.nodes=192.168.1.1:6739,192.168.1.1:6739,192.168.1.1:6739,192.168.1.1:6739,192.168.1.1:6739,192.168.1.1:6739,192.168.1.1:6739,192.168.1.1:6739

把单节点的注释掉加上这个多节点的就可以了,其他配置超时,故障转移重定向什么的也要改,不过不写也行,记得密码别写错了

大概率是依赖问题

引入依赖,版本选择适合自己的。

 <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>版本</version>
    </dependency>

重点,如果配置正确任然无法连接到io.xxxx.xxxx [redisURI []]这个错误的话,你需要在redis启动配置中排除一个冲突的依赖

       <dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>

改成

        <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>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值