今天学习了Redis6的主从复制和哨兵模式,为了更深刻的记忆我在这里记录一下是如何实现的以及在实现过程中出现的一些小问题。这里我实在一台虚拟机上通过更改端口实现多个服务器的。
Redis6的主从复制
一、主从复制的概念
主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。
主从复制:是指将一台Redis服务的数据,复制到其他Redis服务器上。前者称为主节点(master),后者称为从节点(slave)。数据的复制是单向的,只能从主节点到从节点。
默认情况下,每一台Redis服务都是主节点,一个主节点可以有多个从节点(也可以没有),但一个从节点只能有一个主节点。
二、主从复制能干什么?
1,数据冗余,实现数据的热备份,这也是持久化实现的另一种方式。
2,针对单机故障问题,一个节点故障,其他节点可以提供服务,不影响用户使用。实现了快速恢复故障,这也是服务冗余。
3,读写分离,master服务主要用来写,slave服务主要用来读数据。可以提高服务器的负载能力,可以根据需求的变化,添加从节点的数量。
4,负载均衡,同时配合读写分离,由主节点提供写服务,从节点提供读服务,分担服务器的负载。在写少读多的情况下,通过多个从节点分担读负载,能够大大提高Redis服务的并发量和负载。
5,高可用的基石,主从复制是哨兵和集群模式能够实施的基础。
省流:读写分离,性能扩展,容灾快速回复
三、如何实现主从复制
在根目录下新建文件夹 myredis
mkdir myredis
拷贝一份redis.conf 到/myredis
cp /opt/redis-6.2.7/redis.conf /myredis/
后台启动设置daemonize no 改成 yes(259行)
修改密码(903行,可以不修改即无密码)
1.拷贝多个redis.conf文件,用来当作其他redis的启动配置文件(这里我搞了三个,分别为redis6379、redis6380、redis6381)
cp /myredis/redis.conf /myredis/redis6379.conf
在redis6379.conf里添加以下内容
vim redis6379.conf
pidfile /var/run/redis6379.pid (291行)
port 6379 (98行)
dbfilename dump6379.rdb (433行)