
首先我们会在从库配置中文件加入slaveof masterHost masterPort来指定相应的主库。此时如果启动从库,那么redis会找到指定ip和端口号来连接master;如果是一个正在运行的redis服务器,那么我们可以执行slaveof masterHost masterPort命令来让从库开始复制。
下面表格展示了redis在主从复制时经历了哪些步骤:
| 步骤 | 主服务器 | 从服务器 |
|---|---|---|
| 1 | 正常运行中... | 发送sync命令,连接到主服务器 |
| 2 | 执行bgsave命令,并将稍后的写命令记录到缓冲区 |
如果配置slave-serve-stale-data为 yes( 默认设置 ) ,从库会继续响应客户端的请求;否则除了 INFO 和 SLAVOF 命令之外的任何请求都会返回给客户端一个错误提示 |
| 3 | bgsave执行完毕,向从库发送快照文件,期间继续使用缓冲区记录写命令 |
丢弃所有数据,载入主库的快照文件 |
| 4 | 快照发送完毕,开始发送之前提到的缓冲区中的写命令 | 完成快照的解释运行,开始正常接收命令请求 |
| 5 | 缓冲区内容发送完毕,从此,每执行一个命令,都会想从服务器发送相同命令 | 执行主库发来的缓冲区中的命令,执行完毕之后,接收并执行主库发来的每一条写命令 |
需要注意的是从库在开始复制时,会先将本身的数据清空。
更多redis知识请关注redis入门教程栏目。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Logiciel de base de données couramment utilisé
Que sont les bases de données en mémoire ?
Lequel a une vitesse de lecture plus rapide, mongodb ou redis ?
Comment utiliser Redis comme serveur de cache
Comment Redis résout la cohérence des données
Comment MySQL et Redis assurent-ils la cohérence des doubles écritures ?
Quelles données le cache Redis stocke-t-il généralement ?
Quels sont les 8 types de données de Redis