Redis 教程 - 主从复制
Redis 支持主从复制(Master-Slave Replication),通过主从复制可以将一个 Redis 服务器(主节点)的数据复制到其他 Redis 服务器(从节点),以实现数据的冗余备份、读写分离等功能。本教程将介绍 Redis 主从复制的配置和使用方法。
1. 配置主节点
首先,需要配置主节点以允许从节点连接和复制数据。
在主节点的 Redis 配置文件(redis.conf)中,进行以下设置:
# 启用主节点
slave-serve-stale-data yes
# 设置密码(可选)
requirepass <password>
其中,slave-serve-stale-data
设置为 yes
表示主节点在没有有效连接的从节点时仍然提供数据。
如果需要设置密码进行连接验证,可以使用 requirepass
设置密码。
2. 配置从节点
接下来,需要配置从节点来连接主节点并复制数据。
在从节点的 Redis 配置文件中,进行以下设置:
# 启用从节点
slaveof <master-ip> <master-port>
# 设置密码(如果主节点有密码)
masterauth <password>
其中,slaveof
命令用于指定从节点连接的主节点的 IP 地址和端口号。
如果主节点设置了密码进行连接验证,需要使用 masterauth
设置密码。
3. 启动主从复制
完成主节点和从节点的配置后,按照以下步骤启动主从复制:
- 启动主节点 Redis 服务器。
- 启动从节点 Redis 服务器。
从节点连接到主节点后,会开始复制主节点的数据。你可以使用 Redis 命令检查主从复制的状态。
以下是一些常用的命令:
INFO replication
:查看主从复制的信息。SLAVEOF no one
:断开从节点与主节点的连接,停止主从复制。SLAVEOF <master-ip> <master-port>
:将从节点连接到另一个主节点,切换主节点。
4. 主从复制的应用
主从复制可以用于以下场景和应用:
- 数据冗余备份:通过复制数据到从节点,实现数据的冗余备份,提高数据的可靠性。
- 读写分离:将读请求分发到从节点,减轻主节点的负载,提高系统整体的吞吐量。
- 故障切换:当主节点发生故障时,可以将其中一个从节点升级为主节点,实现快速故障切换。
5. 举个例子
当你打开一个 Redis 命令行客户端时,可以按照以下步骤进行 Redis 主从复制的示例操作:
-
打开一个终端窗口,并输入以下命令以启动 Redis 命令行客户端:
redis-cli ```
-
连接到主节点(Master):
在命令行中输入以下命令来连接到主节点:
127.0.0.1:6379> INFO replication
这将显示主节点的相关信息,包括主从复制的状态。
-
配置主节点:
在主节点的 Redis 配置文件中(通常是
redis.conf
),确保以下设置:# 启用主节点 slave-serve-stale-data yes
-
启动从节点(Slave):
在另一个终端窗口中,启动另一个 Redis 服务器实例作为从节点。使用以下命令:
redis-server --port 6380 --slaveof 127.0.0.1 6379
这将启动一个从节点,该节点将连接到本地主节点。
-
验证主从复制状态:
回到 Redis 命令行客户端,在主节点的命令行窗口中,输入以下命令来查看主从复制的状态:
127.0.0.1:6379> INFO replication
这将显示主节点和从节点的相关信息,包括主从节点的连接状态和复制偏移量。
-
进行数据操作:
在主节点的命令行窗口中进行一些数据操作,例如设置键值对:
127.0.0.1:6379> SET mykey "Hello, Redis!"
这将在主节点上设置一个键为
mykey
,值为"Hello, Redis!"
的键值对。 -
验证数据复制:
在从节点的命令行窗口中,输入以下命令来验证数据是否被成功复制到从节点:
127.0.0.1:6380> GET mykey
如果数据成功复制,将返回与主节点相同的值。
通过以上步骤,就表示成功地进行了 Redis 主从复制的示例操作。