Redis集群模式以及SpringBoot集成Redis集群

8 篇文章 0 订阅
4 篇文章 0 订阅

为什么要用Redis的集群模式

  1. 主从模式master容量有限
  2. 主从模式数据同步延迟

Redis集群模式特点

  1. 每个节点知道彼此之间的关系,也会知道自己的角色,当然他们也会知道自己存在与一个集群环境中,他们彼此之间可以交互和通信,ping pong。那么这些关系都会保存到某个配置文件中,每个节点都有,这个我们在搭建的时候会做配置的。
  2. 客户端要和集群建立连接的话,只需要和其中一个建立关系就行。
  3. 某个节点挂了,也是通过超过半数的节点来进行的检测,客观下线后主从切换,和我们之前在哨兵模式中提到的是一个道理。
  4. Redis中存在很多的插槽,又可以称之为槽节点,用于存储数据

Redis的槽介绍

  • slot槽一共有16384个
  • hash(key)%16384 进入不同的槽节点

实践出真知

创建6台机器

主机名ip
RC1192.168.31.249
RC2192.168.31.23
RC3192.168.31.16
RC4192.168.31.73
RC5192.168.31.22
RC6192.168.31.169
配置文件修改
# 开启集群模式 
cluster-enabled yes

# 每一个节点需要有一个配置文件,需要6份。
# 每个节点处于集群的角色都需要告知其他所有节点,彼此知道,这个文件用于存储集 
cluster-config-file nodes-6379.conf 

# 超时时间,超时则认为master宕机,随后主备切换 
cluster-node-timeout 5000 

# 开启AOF 
appendonly yes
创建集群
redis-cli -a `密码`  --cluster create 192.168.31.249:6379 192.168.31.23:6379 192.168.31.16:6379 192.168.31.73:6379 192.168.31.22:6379 192.168.31.169:6379 --cluster-replicas 1
会出现下面的提示
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.31.22:6379 to 192.168.31.249:6379
Adding replica 192.168.31.169:6379 to 192.168.31.23:6379
Adding replica 192.168.31.73:6379 to 192.168.31.16:6379
M: a19497f734405bdf486814e764872ac16b5c9503 192.168.31.249:6379
   slots:[0-5460] (5461 slots) master
M: c5cf40380bf424572005aa4bfe859cb6d89e0ef0 192.168.31.23:6379
   slots:[5461-10922] (5462 slots) master
M: edcd876ae5be1fd5639ebcbf2803887c375ef0dd 192.168.31.16:6379
   slots:[10923-16383] (5461 slots) master
S: 78eb393fde92f2332b2b5879ae43fa0a5a8965e3 192.168.31.73:6379
   replicates edcd876ae5be1fd5639ebcbf2803887c375ef0dd
S: 9d3b8d4ea4cd6d50ed2d4d49a72be9aef0947826 192.168.31.22:6379
   replicates a19497f734405bdf486814e764872ac16b5c9503
S: e940cbfe11311937b77526dd18510ad89b81f5e2 192.168.31.169:6379
   replicates c5cf40380bf424572005aa4bfe859cb6d89e0ef0
Can I set the above configuration? (type 'yes' to accept): 
接下来
输入yes
如果遇到长时间等待,如下所示
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
..................................................................................................................................................................^C
解决办法开启16379 端口
firewall-cmd --zone=public --add-port=16379/tcp --permanent
firewall-cmd --reload
检查集群状态
redis-cli --cluster check 192.168.31.249:6379

SpringBoot配置Redis集群

redis:
    password: 密码
    cluster:
  nodes: 192.168.31.249:6379,192.168.31.23:6379,192.168.31.16:6379,192.168.31.73:6379,192.168.31.22:6379,192.168.31.169:6379
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值