前言
如何关闭redis服务
(1)通过redis-cli连接服务器后执行shutdown命令,则执行停止redis服务操作。
(2)可以使用shutdown命令关闭redis服务器外,还可以使用kill+进程号的方式关闭redis服务。
(3)不要使用Kill 9方式关闭redis进程,这样redis不会进行持久化操作,除此之外,还会造成缓冲区等资源不能优雅关闭,极端情况下会造成AOF和复制丢失数据的情况
一、redis主从模式
是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。
主要作用:
①数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
②故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
③负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
④高可用(集群)基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
实现
一主两从: 三台服务器【这个三台之间可以相互访问】。 我这里为了操作方便,就在一台服务器启动三个redis服务。 只需要修改端口号即可。
创建三个redis配置文件。
1. 修改端口号
2. 修改rdb文件的名称。
3. 修改aof的文件名
然后启动三个服务 确定一个为主节点
redis-cli -p 端口号 分别连接上三个服务
在从节点上输入 表示把当前节点变为主机点的从节点
slaveof 主节点ip 主节点port
配置完成
二、redis哨兵模式
我们从上面的主从模式 我们知道该模式,如果主节点宕机后,需要人为的选举主节点。 从节点不会主动变成主节点。 哨兵模式 会在剩下的从节点中选举一个作为主节点。
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的 进程 ,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
实现
修改 或者创建sentinel.conf
更改里面的配置
redis-sentinel sentinel.conf #启动该服务
测试 把主节点使用shutdown命令关闭 然后该服务就会在从节点投票选取一个从节点当主节点
三、redis集群模式-3.0以后有的
如果后期写操作也比较多,势必会操作主节点压力比较大。而且上面主节点要把数据同步到所有从节点。所以出现了多主多从模式。
配置实现
注意集群模式默认最低为三组
搭建一个三主三从的redis集群。7001~7006
依次更改这些来标识服务
端口号
rdb文件名
aof文件名[必须开启aof模式]
更改配置文件中的权限打开
cluster-enabled yes
cluster-config-file nodes-端口号.conf
启动各个配置文件服务
分配槽以及主从关系
redis-cli --cluster create --cluster-replicas 1 192.168.223.158:7001 192.168.223.158:7002 192.168.223.158:7003 192.168.223.158:7004 192.168.223.158:7005 192.168.223.158:7006
测试集群 随便进一个集群中的主节点 存数据的时候会根据对应的hash计算 得出存入符合范围的槽里