转载请注明出处:
Redis主从配置的特点
- 数据同步:主库(Master)负责处理写请求,并将数据更改同步到从库(Slave)。从库主要用于读请求和数据备份。
- 读写分离:通过配置从库为只读,可以有效分散读请求,提升系统性能。
- 高可用性和容错:即使主库出现故障,从库也能继续提供读服务,并在主库恢复后重新同步数据。
- 可扩展性:支持一主多从以及多级从结构,可以根据需要扩展从库数量,提高系统读取能力和数据冗余度。
- 异步复制:主从同步是异步进行的,不会阻塞主库处理请求。
配置
在Redis中,主从配置主要通过修改配置文件(通常是redis.conf)来实现。以下是一些关键配置项:
- 主库配置
- 无需特别配置即可作为主库使用,但需确保监听端口和绑定地址正确设置。
- 可以选择关闭数据持久化(如RDB和AOF),以提高主库性能,但需注意数据安全性。
- 从库配置
slaveof <masterip> <masterport>
:指定从库要复制的主库IP地址和端口号。replica-read-only yes
(Redis 5.0及以上版本中使用replicaof
替代了slaveof
,但效果相同):设置从库为只读模式。- 其他配置如日志、持久化等可根据需要进行调整。
主库配置文件(redis_master.conf)
# 端口号
port 6379
# 启用守护进程模式
daemonize yes
# 日志文件位置
logfile "/var/log/redis/redis-server.log"
# 数据目录
dir "/var/lib/redis"
# 最大内存限制(根据需要调整)
maxmemory 16gb
# 数据持久化配置(此处以RDB为例,AOF可根据需要配置)
save 900 1
save 300 10
save 60 10000
# 其他配置...
从库配置文件(redis_slave.conf)
# 端口号(与主库不同)
port 6380
# 启用守护进程模式
daemonize yes
# 日志文件位置
logfile "/var/log/redis/redis-slave-server.log"
# 数据目录
dir "/var/lib/redis_slave"
# 指定要复制的主库
slaveof 192.168.1.100 6379
# 设置为只读模式
replica-read-only yes
# 其他配置(如持久化、内存限制等可根据需要调整)
# ...
注意:
- 在实际部署时,需要将
slaveof
(或replicaof
)指令中的IP地址和端口号替换为实际的主库地址和端口号。 - 配置文件中的其他选项(如日志位置、数据目录、内存限制等)也应根据实际需求进行调整。
- Redis的主从配置是异步的,因此在网络延迟较高或主库负载较重时,从库的数据可能会有一定的滞后。
- 为了确保数据安全,建议同时配置RDB和AOF持久化机制,或者在从库上配置持久化而禁用主库的持久化功能。
命令查看主从角色
方式1:通过Info replication 命令进行查看
查看当前节点主从角色命令:
INFO replication
在主节点上进行查看:
在备节点上进行查看:
方式2:通过role命令进行查看
在主节点上执行:
在从节点上执行: