redis集群模式
redis集群模式
redis集群搭建(主从关系,哨兵模式,去中心化集群简介)
主从关系:
数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
哨兵模式:
Sentinel(哨兵) 进程是用于监控 Redis 集群中 Master 主服务器工作的状态
在 Master 主服务器发生故障的时候,可以实现 Master 和 Slave 服务器的切换,保证系统的高可用(HighAvailability)
去中心化集群:
redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)。redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单。
1.主从关系的建立
注意:配从不配主
新增了新节点,新节点会把之前的数据也获取。主节点挂掉,从节点等待
准备工作
1. 创建了一个目录 master-slave
2. 把redis配置文件复制到master-slave
redis7001.conf redis7002.conf redis7003.conf
3.分别修改上面三个文件的端口号以及rdb持久化文件的名称 并aof关闭。
1.1redis节点的信息
## 我们在7002和7003使用slaveof 127.0.0.1 7001 把7002和7003挂载7001上
同时操作7002,7003
使用命令slaveof 127.0.0.1 7001
验证: 主节点负责写,并把写的内容同步到从节点上。 从节点只能负责读操作。不能写操作。
2.Cluster(去中心化)模式
2.1 配置所有的redis8001.conf文件
修改文件名:格式 redis+设置的端口号.conf
2.2 Cluster至少配置启动六个redis服务器
#开放连接,任意主机都可连接数据库
bind 0.0.0.0
#每个redis数据库配置不同的端口
port 8001
#设置是否后台运行数据库 yes后台运行 no 不支持后台运行
daemonize yes
#设置数据库的持久化的文件名
dbfilename "dump端口.rdb"
#AOF模式的触发,默认为 no 不触发 yes为触发
appendonly yes
# 开启集群
cluster-enabled yes
# 集群的配置文件,该文件自动生成
cluster-config-file nodes-8001.conf
# 集群的超时时间
cluster-node-timeout 5000
开放对外连接的接口
设置该redis数据库端口
设置redis数据库的后台启动
设置一个redis数据库进而保存持久化数据的文件
设置AOF模式,并创建日志文件
设置为集群模式,进而设置生成集群的节点配置文件和相应的文件名
2.3 启动所有的redis
为每一个主节点分配槽以及分配从节点
cluster-replica:后边表示每个主节点跟随的从节点的个数
redis-cli --cluster create --cluster-replicas 1 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004 127.0.0.1:8005 127.0.0.1:8006
必须保证aof开启,保证redis中没有数据。
客户端访问:
redis-cli -c -h 127.0.0.1 -p 8001
3.哨兵模式
优点
哨兵集群模式是基于主从模式的,所有主从的优点,哨兵模式同样具有。
主从可以切换,故障可以转移,系统可用性更好。
哨兵模式是主从模式的升级,系统更健壮,可用性更高。
缺点
Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。
实现哨兵模式的配置也不简单,甚至可以说有些繁琐
准备工作:首先配置好主从关系
# 127.0.0.1表示redis主节点的Ip地址
# 6379 表示主节点的端口号
# 此处表示有多少个哨兵选取redis从节点后,该从节点可以当选为主节点,可以指定一个。
sentinel monitor mymaster 127.0.0.1 7001 1
启动哨兵模式:
redis-sentinel sentinel.conf
总结:当主机挂掉之后就会从从机中随机选举出来一个主机,当挂掉的主机再次复活过来。他会还是从机,不能在变成主机了。