Redis在作为可内存持久化的Key-Value数据库是使用的过程中是可以做主从服务的。在Redis的大规模集群中Redis的主从服务就是集群实现的基础,在Redis的主从服务中有以下几个优点:
1、master可以有多个slave。 2、除了多个slave连到相同的master外,slave也可以连接其它slave形成图状结构。 3、主从复制不会阻塞master。也就是说当一个或多个slave与master进行初次同步数据时,master 可以继续处理客户端发来的请求。相反slave在初次同步数据时则会阻塞不能处理客户端的请求。 4、主从复制可以用来提高系统的可伸缩性,我们可以用多个slave专门用于客户端的读请求,比如sort操作可以使用slave 来处理。也可以用来做简单的数据冗余。 5、可以在master禁用数据持久化,只需要注释掉master配置文件中的所有save配置,然后只在slave上配置数据持久化。 6、在slave上数据只读,如此保障了数据的一致性
这样在平时就可以灵活的在使用Redis,而配置Redis的主从也十分的简单,只需要在Redis的slave服务器上配置文件redis.conf中修改添加以下配置即可:
slaveof <masterip> <masterport> #填上master的IP和端口 masterauth <master-password> #填上master的密码 #建议在Redis中开启logfile输出
在这里正常slave连接上master后,在第一次的时候master就会在后台实时启动一个进程把数据保存在快照中,再通过sync把快照传送至slave,最后由slave把快照导入slave的Redis库中,而在后续在master上接收的指令都会同步发送一份至slave,从而实现主从同步,这里需要注意的是在搭建好后如果master有设置口令验证而在slave中没有配置masterauth参数时,那么在主从连接时就会报错,且在日志中会时时打印如下的日志信息:
# MASTER aborted replication with an error: NOAUTH Authentication required.
在master和slave正常搭建连接后在master和slave中都会打印相应的成功日志
本文出自 “Jim的技术随笔” 博客,谢绝转载!
原文地址:http://jim123.blog.51cto.com/4763600/1980928