Redis 主从复制的使用场景包括:
-
数据备份和灾难恢复:主从复制可以实现数据备份和灾难恢复,当主服务器出现故障时,可以快速切换到从服务器上运行,从而保证系统的可用性和数据的安全性。
-
读写分离:通过主从复制,主服务器可以处理写操作,从服务器可以处理读操作,从而实现读写分离,提高系统的并发性能。
-
数据分片:主从复制也可以实现数据分片,将不同的数据分配到不同的节点上,从而提高系统的可扩展性和性能。
-
高可用集群:通过主从复制,可以实现高可用性的集群,当主服务器出现故障时,从服务器可以自动接管,从而提高系统的可用性。
-
负载均衡:通过主从复制,可以实现负载均衡,将不同的请求分配到不同的节点上,从而提高系统的并发性能和可扩展性。
Redis 实现主从复制功能需要以下步骤:
- 在主服务器上修改配置文件,启用复制功能,并设置相关参数:
# 启用复制功能
replicaof <master_ip> <master_port>
# 设置密码
requirepass <password>
-
重启主服务器,使配置生效。
-
在从服务器上配置连接主服务器的地址和密码:
# 连接主服务器的地址和密码
slaveof <master_ip> <master_port>
masterauth <password>
-
重启从服务器,使配置生效。
-
在主服务器上执行命令
INFO replication
,查看主从复制状态。
以下是一个示例:
在主服务器上执行以下命令:
# 修改配置文件
vi /etc/redis/redis.conf
# 启用复制功能
replicaof 127.0.0.1 6380
# 设置密码
requirepass 123456
# 重启主服务器
systemctl restart redis
在从服务器上执行以下命令:
# 修改配置文件
vi /etc/redis/redis.conf
# 连接主服务器的地址和密码
slaveof 127.0.0.1 6379
masterauth 123456
# 重启从服务器
systemctl restart redis
在主服务器上执行以下命令:
# 查看主从复制状态
INFO replication
如果主从复制正常工作,命令输出会显示以下内容:
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6380,state=online,offset=45,lag=0
master_replid:8fa29c1a0b6a167ec0ebdba2659ecbbcfe8d2e8f
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:45
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:45