Redis主从复制

使用Redis的主从复制,可以实现读写分离,分担主服务器的压力,另外也可以将数据备份放到从数据库中,同时禁止主服务器的数据备份,也可以节省主服务器的系统开销。

要实现主从复制,只需在启动redis服务时加上参数 --slaveof [master ip] port

如果主数据库设置了密码,那么还要加上参数 --masterauth [master password]

例如,在本地启动主数据库

redis-server --port 6379

然后启动从数据库

redis-server --port 6380 --slaveof 127.0.0.1 6379

使用两个客户端分别连接到6379和6380,在6379客户端写入数据,在6380客户端可以读取到。

 

除了在启动Redis服务时使用参数配置主从数据库,也可以在运行时使用SLAVEOF <IP> <PORT>来修改主从复制,

也可以使用SLAVEOF NO NOE命令将当前从数据库提升为主数据库。

 

 

主从复制原理:

从数据库启动时,先向主数据库发送SYNC请求,主数据库收到请求后开始在后台保存快照,同时缓存所有接收到的写命令,快照保存完毕后,将快照和缓存的所有命令发送给从数据库。从数据库接收快照,存储并更新到本地RDB文件,再从RDB文件进行恢复,恢复后执行主数据库发过来的缓存命令。

之后的同步,主数据库会将所有的命令通过Redis协议发给从数据库实现数据同步。

 

posted @ 2016-06-12 16:45  曾彪彪  阅读(434)  评论(0编辑  收藏  举报