redis的高可用

一. 主从模式

redis高可用的基础,哨兵模式和集群都是建立在此基础之上。
主从模式和数据库的主从模式是一样的,主负责写入,然后把写入的数据同步到从,从节点只能读不能写(read only)。
不能做高可用的切换,主节点出现故障,没有替换的主节点,所有的写入操作都将失败。

1.1 工作流程

  1. 当配置完整之后,从节点启动,会向主节点发送一个sync command,请求同步连接
  2. master都会开启一个后台的进程将主节点的数据保存到数据文件中
  3. 主节点把数据同步给从节点从节点先把数据保存到硬盘,再加载到内存

主 192.168.246.6
从1 192.168.246.7
从2 192.168.246.10

#主
vim /ete/redis/redis.conf
68添加注释
#bin 127.0.0.1:1
87
protected-mode no
224
daemonize yes
1095
appendonly yes
#从1从2
vim /etc/redis/redis.conf
68添加注释
#bin 127.0.0.1:1
87
protected-mode no
389
添加
replicaof 192.168.246.6 6379
1095
appendonly yes

systemctl restart redis

tail -f /var/log/redis/redis-server.log
在这里插入图片描述

二. 哨兵模式

在主从模式的基础之上,哨兵引入了故障的切换的模式
哨兵也是一个分布式的集群结构,对主从结构当中的每台服务器进行监控当出现故障时,通过投票的机制选择一个新的master。被选举出的新的master会将所有的从节点重新连接到自己
从节点会自动同步到主,自动变成只读模式。

2.1 工作模式

  1. 主从之间,互相有一个心跳的检测
  2. 当主节点宕机,从节点都会收到主的宕机的信息
  3. 两个从节点,自动进行投票,选择一个新的主
  4. 从节点会自动加入新主的主从模式。

主 192.168.246.6
从1 192.168.246.7
从2 192.168.246.10
在配置哨兵模式的第一次的时候,人工的定义好主。

#主从

apt -y install redis-sentinel

vim /etc/redis/sentinel.conf
16行添加注释
18行取消注释
27
daemonize yes
142
sentinel monitor mymaster 192.168.246.6 6379 2
人工定义主的服务器
2的含义:当主节点发生故障,必须要有两个从节点同意,才能进行故障迁移。
143添加
sentinel down-after-milliseconds mymaster 30000
判断服务器宕机的时间周期是30000毫秒,30秒
sentinel failover-timeout mymaster 18000
故障节点的最大超时时间 18000 180秒
systemctl restart redis-sentinel.service

tail -f /var/log/redis/redis-sentinel.log

在这里插入图片描述

2.2 故障切换


systemctl stop redis
等待30秒
在这里插入图片描述

/etc/redis/sentinel.conf里的内容将自动修改

三. 集群

redis-cluster:集群是由多不节点组成,redis的数据分布在节点中,集群的当中每个节点又分主和从。
主负责写,从负责读。

3.1 hash槽位

0-16383个(最少6台服务器)
A-----0~5460
hash—key–>test1=1 test2=2 test3=3
B-----5461~10922
C-----10923~16383

#同步时间(6台服务器)
apt -y install ntpdate
ntpdate ntp aliyun.com

vim /etc/redis/redis.conf
55添加注释
87
protected-mode no

224
daemonize yes

1227取消注释
cluster-enabled yes
#开启集群的功能

1235取消注释
cluster-config-file nodes-6379.conf
#设置集群的配置文件名称

1094
appendonly yes

1241取消注释
cluster-node-timeout 15000
#设置集群的超时时间



#命令行
systemctl restart redis

redis-cli  -h 192.168.246.6 --cluster create 192.168.246.6:6379 192.168.246.9:6379 192.168.246.7:6379 192.168.246.10:6379 192.168.246.8:6379 192.168.246.11:6379 --cluster-replicas 1
#--cluster-replicas 1 #表示每个主节点对应一个从节点。
#不会完全按照分配

在这里插入图片描述

root@u1:-# redis-cli -h 192.168.246.6 -p 6379192 168 246.6:6379> set test10 10
(error) MOVED 9248 192.168.246.11:6379
#表示客户端尝试将这个数值保存到槽位号是9248的位置,实际槽位在14这个主机。

3.2 集群缺点

redis的集群模式,只是满足高可用,不能实现数据同步。
对数据同步要求很高的场景,选择redis的主从和哨兵模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值