您的位置:首页 > 数据库 > Redis

redis的主从复制

2016-05-01 22:08 369 查看
集群的作用:

1 主从备份,防止主机宕机

2 读写分离,分担master的任务

3 任务分离,如从服务器分担备份和计算工作。

主从通信过程:



1 slave需要同步的时候,slave会发起sync请求。

2 master得到请求,会dump出rdb文件传给slave,slave拿到rdb文件塞到自己内存里面

3如果在上述过程中,有新的命令过来,会缓冲在aof内存队列里面

4如果slave的rdb文件里面的数据都塞到自己内存里面,则接下来会同步缓冲的aof队列的数据。

三台redis的主从复制

同时启动两个Redis服务器,可以考虑在同一台机器上启动两个Redis服务器,分别监听不同的端口,如6379和6380

master 6379端口

salve 6380端口

修改salve的redis的conf文件

1 port 6380 修改端口

2 pidfile /var/run/redis6380.pid

3 dbfilename dump6380.rdb rdb导出文件名改为dump6380.rdb,以免跟master重名,因为他们dump的rdb文件在一个目录下面

4 slaveof localhost 6379 设置这个slave的master服务器的ip和端口

5 slave-read-only yes 从服务器为只读

启动master ,启动slave



1 连接master的客户端,在master 塞入键值对



2 连接slave客户端,能在slave得到该键值对的值,说明slave同步master的数据啦



3 如果连接slave客户端,写入键值对,是会报错的,因为slave-read-only yes 从服务器为只读



redis的主从复制就做完了。

总结redis的主从复制有以下几点注意

master配置

1 关闭rdb快照

2 开启aof

3 非必选,配置密码 requirepass foobared 如果客户端连接master需要 输入 auth foobared

slave配置

1 声明slaveof

2 某一个slave打开rdb功能

3 配置是否只读

4 非必选,配置密码 masterauth foobared

主从复制的缺陷

每次slave断开后,再次连接master,都要master全部dump出来rdb,在aof,就是同步过程要重新执行一遍。所以多台slave不要一下子都启动起来,否则master可能io飙升。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: