redis主从复制是一主多从,有以下几个规则:
1. 一个master可有由多个slave
2. 一个slave只能有一个master
3. 数据流向只能是从master流向slave
以下实现一个简单的一主二从的主从复制:
一. 修改配置文件
这里master端口号我使用7000,两个slave端口号分别为7001,7002(端口号不建议使用默认端口号6379)。
使用vim生成配置文件:
vmi并添加如下几个配置项:
port代表redis server的端口号,daemonize代表以守护线程的方式启动,pidfile代表线程id文件,logfile代表日志文件,dir代表工作目录(根据自己的情况修改),dbfilename代表rdb文件名。
slave的配置文件也作类似的修改,唯一的区别在于要加上一句:slaveof 127.0.0.1 7000。
这里的127.0.0.1是server的ip地址,我使用的是本地地址,实际要根据情况修改。
二. 启动master和slave
然后就可以根据各自的配置文件分别启动三个redis server了:
验证一下三个server是否正确启动了:
可以看到,三个server都已启动。
然后可以连接端口号为7000的server,看一下server的信息:
根据上图中info信息的replication字段可以看到,端口号为7000的server角色属性role为master,并且已经连接了两个slave,即connected_slave字段显示,并且两个slave的状态信息也可以看到。
再去端口号为7001的server看一下:
我们发现7001端口的role显示为slave。
三. 验证redis主从复制
首先进入三个server看一下dbsize,发现都是0:
然后我们来看一下数据同步,我们在主服务器添加几条数据:
我们添加了hello和counter两个key,然后我们去7001从服务器(7002也一样)验证数据是否同步:
可以发现,数据被同步过来了!以上就是一个简单的redis主从复制的实例。
网友评论