redis哨兵模式和集群

Redis集群
redis集群三种模式
1、主从复制( 奇数 3 一主两从 )

2、哨兵模式 3 一主两从

3、cluster 集群 6 3 3 3 9

1、主从复制
主从复制:和mysql的主从复制类似,主可以写,写入主的数据通过RDB方式把数据同步到从服务器。从不能更新到主,也是哨兵模式的基础

缺点:没有办法实现故障自动化恢复,只有主能够写

主从复制:主节点和从节点、数据的复制是单向的,由主复制到从

主从复制的流程:从想主发起请求,主受到后创建RDB文件

部署主从复制

服务器:

redis1 192.168.100.21 主

redis2 192.168.100.22 从1

redis3 192.168.100.23 从2

# redis1、2、3
systemctl stop firewalld
setenforce0
yum -y install ntpdate
ntpdate ntp.aliyun.com
date

redis1
vim /etc/redis/6379.conf
70 改成0.0.0.0或者注释,注释默认所有
137 查看是否注释掉了
700 appendonly no改成yes

redis2
vim /etc/redis/6379.conf
70 改成0.0.0.0或者注释,注释默认所有
287 replicaof 192.168.100.21 6379
700 appendonly yes # 打开aof持久化功能

redis3
vim /etc/redis/6379.conf
70 改成0.0.0.0或者注释,注释默认所有
287 replicaof 192.168.100.21 6379
700 appendonly yes # 打开aof持久化功能

# 同时
/etc/init.d/redis_6379 restart
netstat -antp | grep 6379

redis1 
tail -f /var/log/redis_6379.log

2、哨兵模式
哨兵:故障自动化恢复,主从复制完成之后,从服务器会变成只读模式

切换方式:不是按照权重来进行切换,投票:主宕机,其他服务器投票选举,通过Raft算法,选一个例当前时间点更新最快的从变成主

故障切换时,主故障,变成从服务器,主变成从之后,也会进入只读模式

缺点:从节点一旦故障,读会受到影响

部署哨兵模式:

哨兵模式:基于主从复制基础上

服务器:

redis1 192.168.100.21 主

redis2 192.168.100.22 从1

redis3 192.168.100.23 从2

同步操作
cd /opt
cd /opt/redis-5.0.7
# redis-5.0.7自带哨兵模式源码包--setinel.conf
vim sentinel.conf
21 port 26379 不动,哨兵模式的默认端口
17 protected-mode no   # 取消注释  # 关闭保护模式
27 daemonize no 改成yes
36 logfile "/var//log/sentinel.log"
65 dir "/var/lib/redis/6379"
84 sentinel monitor mymaster 192.168.100.21 6379 2
# 监听初始化监听,都是监听主服务器的状态,
#2 对应的就是从服务器的数量以及投票的参与者,参与者要和从服务器的数量一致
113 sentinel down-after-milliseconds mymaster 30000
# 判断服务器宕机的时间周期 30秒 每30秒检测一次
146 sentinel failover-timeout mymaster 180000
# 判断故障节点的超时的最大时间 180秒
wq!


先启动主,再启动从!!!
redis-sentinel sentinel.conf &

redis1
redis-cli -p 26379 info Sentinel

哨兵模式创建完成

redis1
/etc/init.d/redis_6379 stop

查看日志文件
tail -f /var/log/sentinel.log

3、集群
集群:把每两台服务器作为主从模式,形成一个大的主从集群,解决了写操作色负载均衡,较为完善的高可用方案

缺点:保证高可用,对数据的完整性要求不高

集群:redis3.0之后的分布式存储方案。集群由多个节点组成,redis数据保存在这些节点、集群中的节点分为主和从,主负责读写以及维护集群的信息,从节点进行主节点数据的复制(也可以查)。

redis集群的数据分片:在集群概念中,引用hash槽的概念,创建了集群有16384个哈希槽(0~16384)

3个节点:

主1:0~5460

主2:5461~10922

主3:10923~16383

注意:节点当中,如果主和从全部失败,整个集群都将不可用

集群部署:

集群:基于主从复制基础上,与哨兵不兼容

服务器:

redis1 192.168.100.21 主1

redis2 192.168.100.22 主2

redis3 192.168.100.23 主3

redis4 192.168.100.24 从1

redis5 192.168.100.25 从2

redis6 192.168.100.26 从3

# redis1、2、3、4、5、6
systemctl stop firewalld
setenforce 0
yum -y install ntpdate
ntpdate ntp.aliyun.com
date

vim /etc/redis/6379.conf
70   注释
89   protected-mode no
136  
833  cluster-enabled yes  取消注释
841  cluster-config-file nodes-6379.conf 取消注释
847  cluster-node-timeout 15000 取消注释
700  appendonly yes
wq!

/etc/init.d/redis_6379 restart


# 启动集群和分配主从
redis-cli -h 192.168.100.21 --cluster create 192.168.100.21:6379 192.168.100.24:6379 192.168.100.22:6379 192.168.100.25:6379 192.168.100.23:6379 192.168.100.26:6379 --cluster-replicas 1
------------------------------------------------------------------------------------------------------------
# -h 192.168.100.21 
配置集群的主连接节点---在那台机器上配就写那一台机器
# --cluster create 192.168.233.7:6379 192.168.233.14:6379 192.168.233.8:6379 192.168.233.15:6379 192.168.233.9:6379 192.168.233.16:6379
前面是主,后面是从
# --cluster-replicas 1
表示每个主只有一个节点


redis-cli -h 192.168.100.21 -p 6379
cluster slots   # 查看hash槽的分配

cluster nodes   # 查看节点

集群总结:moved不是报错,只是系统提示客户端到指定位置的哈希槽进行读或者写,系统提示啥,你就去哪个节点操作即可,这个节点是该节点的主

集群的功能只是满足了高可用和写的负载均衡,不能保证数据的完整性

redis-cli -h 192.168.100.21 -p 6379
cluster slots # 查看hash槽的分配

cluster nodes # 查看节点


集群总结:moved不是报错,只是系统提示客户端到指定位置的哈希槽进行读或者写,系统提示啥,你就去哪个节点操作即可,这个节点是该节点的主

集群的功能只是满足了高可用和写的负载均衡,不能保证数据的完整性

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值