redis第三篇~redis的主从
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis第三篇~redis的主从相关的知识,希望对你有一定的参考价值。
一 简介:今天咱们来聊聊redis的主从架构
二 前沿:
和其他数据库一样,redis最早的也是主从架构,后来版本出现了高可用的搭配,在主挂掉后,从库提供读写。
三 搭建:
1 准备两台redis服务器
2 从库配置文件中添加: slaveof masterhost port
3 如果主库启用了密码认证,从库配置文件中还要添加: masterauth password
4 1 从库查看启动日志 Full resync from master:
2 登录redis 查看key 发现已经同步
四 原理
1 redis首次同步
Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下:
1)从服务器连接主服务器,发送SYNC命令;
2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;
3)主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
4)从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;
5)主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;
6)从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;
2 增量同步
Redis增量复制是指Slave初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。
增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。
3 总结
1 首次全量同步(快照) ->增量同步(命令) 增量同步失败->全量同步(2.8后已经改善)
五 注意事项
1 slave只提供只读功能 参数为 slave-read-only yes
2 即使有多个从服务器同时发来SYNC指令,主服务器也只会执行一次BGSAVE
3 redis2.8之后有更高效的同步命令psync指令,减少由于主从断开恢复的成本(redis主会维护一个缓冲区,存储最近执行的命令)
4 清除主从同步信息:在从库执行SLAVEOF NO ONE,可以将从库同步信息清除,但是同步的数据会保留,可以用作slave下线或者slave转化为master
以上是关于redis第三篇~redis的主从的主要内容,如果未能解决你的问题,请参考以下文章