一、引子
1.Redis主从复制以及哨兵,它们可以提高读的并发,但是单个master容量有限,数量达到一定程度后会有瓶颈,这个时候可以通过水平扩展为多master-slaver成为集群
2.哨兵模式其实也是一种集群,他能够提高读请求的并发,但是容错方面有些问题。比如master同步数据给slaver,其实是异步复制,这个时候master挂了,那么slaver上的数据就没有master新,数据同步需要时间,1-2秒的数据会丢失
二、redis-cluster特点
1.每个节点知道彼此之间的关系,也知道自己的角色,当然也会知道自己存在一个集群环境中,它们彼此之间可以互相通信和交互。这些关系会保存到某个配置文件中,每个节点都有
2.客户端要和集群建立连接的话,只需要和其中一个建立关系就行
3.某个节点挂了,也是通过超过半数的节点来进行检测,客观下线主从切换
4.Redis中存在很多的插槽,可以称为槽节点,用于存储数据。(主节点有,从节点没有)
5.构建redis集群,至少需要三个节点作为master,以此组成一个高可用的集群,此外每个master都要配备一个slaver,所以集群需要6个节点,就是最经典的三主三从,容错性最佳。
三、构建集群
1.redis.conf配置
# 开启集群模式
cluster-enabled yes
# 每一个节点需要有一个配置文件,需要6份。每个节点处于集群的角色都需要告知其他所有节点,彼此知道,这个文件用于存储集群模式下的集群状态等信息,这个文件是由redis自己维护,我们不用管。如果你要重新创建集群,那么把这个文件删了就行
cluster-config-file nodes-201.conf
# 超时时间,超时则认为master宕机,随后主备切换
cluster-node-timeout 5000
# 开启AOF
appendonly yes
2.启动对应的redis
3.创建集群
#####
# 注意1:如果你使用的是redis3.x版本,需要使用redis-trib.rb来构建集群,最新版使用C语言来构建了,这个要注意
# 注意2:以下为新版的redis构建方式
#####
# 创建集群,主节点和从节点比例为1,1-3为主,4-6为从,1和4,2和5,3和6分别对应为主从关系,这也是最经典用的最多的集群模式
redis-cli --cluster create ip1:port1 ip2:port2 ip3:port3 ip4:port4 ip5:port5 ip6:port6 --cluster-replicas 1
4.检测集群信息: redis-cli -cluster check 192.1.60.105:6380
5.进入redis集群中的某台:redis-cli -c -a password -h 192.168.1.203 -p 6379
四、springboot集成redis集群
spring:
redis:
password: imooc
cluster:
nodes: 192.168.1.191:26379,192.168.1.192:26379,192.168.1.193:26379。。。 #所有redis节点ip和端口
网友评论