Redis 教程 - 主从复制

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. 启动主从复制

完成主节点和从节点的配置后,按照以下步骤启动主从复制:

  1. 启动主节点 Redis 服务器。
  2. 启动从节点 Redis 服务器。

从节点连接到主节点后,会开始复制主节点的数据。你可以使用 Redis 命令检查主从复制的状态。

以下是一些常用的命令:

  • INFO replication:查看主从复制的信息。
  • SLAVEOF no one:断开从节点与主节点的连接,停止主从复制。
  • SLAVEOF <master-ip> <master-port>:将从节点连接到另一个主节点,切换主节点。

4. 主从复制的应用

主从复制可以用于以下场景和应用:

  • 数据冗余备份:通过复制数据到从节点,实现数据的冗余备份,提高数据的可靠性。
  • 读写分离:将读请求分发到从节点,减轻主节点的负载,提高系统整体的吞吐量。
  • 故障切换:当主节点发生故障时,可以将其中一个从节点升级为主节点,实现快速故障切换。

5. 举个例子

当你打开一个 Redis 命令行客户端时,可以按照以下步骤进行 Redis 主从复制的示例操作:

  1. 打开一个终端窗口,并输入以下命令以启动 Redis 命令行客户端:

    复制代码
    redis-cli
    ```
  2. 连接到主节点(Master):

    在命令行中输入以下命令来连接到主节点:

    复制代码
    127.0.0.1:6379> INFO replication

    这将显示主节点的相关信息,包括主从复制的状态。

  3. 配置主节点:

    在主节点的 Redis 配置文件中(通常是 redis.conf),确保以下设置:

    复制代码
    # 启用主节点
    slave-serve-stale-data yes
  4. 启动从节点(Slave):

    在另一个终端窗口中,启动另一个 Redis 服务器实例作为从节点。使用以下命令:

    复制代码
    redis-server --port 6380 --slaveof 127.0.0.1 6379

    这将启动一个从节点,该节点将连接到本地主节点。

  5. 验证主从复制状态:

    回到 Redis 命令行客户端,在主节点的命令行窗口中,输入以下命令来查看主从复制的状态:

    复制代码
    127.0.0.1:6379> INFO replication

    这将显示主节点和从节点的相关信息,包括主从节点的连接状态和复制偏移量。

  6. 进行数据操作:

    在主节点的命令行窗口中进行一些数据操作,例如设置键值对:

    复制代码
    127.0.0.1:6379> SET mykey "Hello, Redis!"

    这将在主节点上设置一个键为 mykey,值为 "Hello, Redis!" 的键值对。

  7. 验证数据复制:

    在从节点的命令行窗口中,输入以下命令来验证数据是否被成功复制到从节点:

    复制代码
    127.0.0.1:6380> GET mykey

    如果数据成功复制,将返回与主节点相同的值。

通过以上步骤,就表示成功地进行了 Redis 主从复制的示例操作。

相关推荐
静若繁花_jingjing1 小时前
Redis线程模型
java·数据库·redis
在肯德基吃麻辣烫2 小时前
《Redis》缓存与分布式锁
redis·分布式·缓存
先睡8 小时前
Redis的缓存击穿和缓存雪崩
redis·spring·缓存
weixin_4461224611 小时前
JAVA内存区域划分
java·开发语言·redis
TT哇11 小时前
JavaEE==网站开发
java·redis·java-ee
qq_3923971214 小时前
Redis常用操作
数据库·redis·wpf
一只叫煤球的猫15 小时前
真实事故复盘:Redis分布式锁居然失效了?公司十年老程序员踩的坑
java·redis·后端
都叫我大帅哥20 小时前
🌊 Redis Stream深度探险:从秒杀系统到面试通关
java·redis
都叫我大帅哥20 小时前
Redis持久化全解析:从健忘症患者到记忆大师的逆袭
java·redis
野蛮人6号21 小时前
黑马点评系列问题之基础篇p7 06初识redis无法在虚拟机查到图形化界面存进去的键
redis·黑马点评