以下是 Redis 主从服务器的搭建步骤及相关配置项介绍:
搭建步骤
- 准备主从服务器:需要准备至少两台服务器,一台作为主服务器,负责处理写操作;另一台或多台作为从服务器,负责处理读操作。也可以在同一台机器上启动多个 Redis 实例来模拟多台服务器,但要注意修改每个实例的端口号和配置文件。
- 配置主服务器:
- 编辑主服务器的 Redis 配置文件(如
redis.conf
),根据需要进行常规配置,例如设置端口号、日志文件路径、持久化文件存放位置等。
- 如果需要设置密码,可以添加
requirepass <password>
配置项。
- 配置从服务器:
- 在每个从服务器的 Redis 配置文件中,添加
replicaof <master-ip> <master-port>
,指定主服务器的 IP 地址和端口号。
- 如果主服务器设置了密码,还需要添加
masterauth <master-password>
配置项。
- 可以根据需求设置从服务器为只读模式,添加
replica-read-only yes
。
- 启动服务:在每台服务器上使用
redis-server <config-file>
命令启动 Redis 服务。如果一切正常,从服务器会显示 Connected to MASTER
的日志信息,表示连接成功。
- 测试主从集群:使用
redis-cli
命令连接到不同的服务器,执行一些读写操作,观察数据是否同步。还可以模拟主服务器故障的情况,看是否能够手动或自动切换到一个从服务器作为新的主服务器。
相关配置项
replicaof <masterip> <masterport>
:在从服务器上配置,用于指定主服务器的 IP 地址和端口号。
masterauth <master-password>
:如果主服务器设置了密码,从服务器需要使用此配置项来提供密码,以便能够连接到主服务器并进行数据复制。
replica-serve-stale-data <yes/no>
:用于控制从服务器在与主服务器断开连接后的行为。默认值为 yes
,表示从服务器仍尽可能地提供数据服务,可能包括一些过时的数据;配置为 no
时,连接断开后就不再提供数据服务,除了 INFO
和 SLAVEOF
命令。
replica-read-only <yes/no>
:用于控制从服务器是否以只读模式运行。默认值为 yes
,表示从服务器以只读模式运行。
repl-ping-slave-period
:从服务器会每隔指定的秒数向主服务器发送一个 PING,用于确保连接是活动的。默认值是 10 秒。
repl-timeout
:这是一个超时时间,用于定义从服务器等待主服务器的响应的最长时间。如果在这个时间内没有收到响应,从服务器将断开连接。默认值是 60 秒。
repl-disable-tcp-nodelay <yes/no>
:控制 TCP NoDelay 选项是否应用于从服务器与主服务器之间的连接。默认情况下,该选项是关闭的,即 TCP NoDelay 是启用的。
repl-backlog-size
:设置复制积压缓冲区的大小。当主从服务器之间出现网络问题或从服务器断线重连时,主服务器会使用复制积压缓冲区来记录最近的写命令,以便从服务器能够追上主服务器的数据。
min-slaves-to-write <number>
:主节点仅允许当能够通信的从节点数量大于等于此处的值时,才允许接受写操作。
min-slaves-max-lag <seconds>
:从节点延迟时长超出此处指定的时间时,主节点会拒绝写入操作。