Redis 主从复制是一种数据冗余机制,通过将主节点(Master)的数据复制到一个或多个从节点(Slave)来实现数据备份和读写分离。
# 安装 Redis
sudo apt-get install redis-server
编辑主节点配置文件 /etc/redis/redis.conf:
bind 0.0.0.0
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/var/log/redis_6379.log"
dbfilename dump_6379.rdb
启动主节点:
redis-server /etc/redis/redis.conf
复制配置文件:
cp /etc/redis/redis.conf /etc/redis/redis_6380.conf
编辑从节点配置文件 /etc/redis/redis_6380.conf:
bind 0.0.0.0
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
logfile "/var/log/redis_6380.log"
dbfilename dump_6380.rdb
# 关键配置:指定主节点
replicaof 127.0.0.1 6379
# 如果主节点有密码
# masterauth yourpassword
启动从节点:
redis-server /etc/redis/redis_6380.conf
在主节点执行:
redis-cli -p 6379
127.0.0.1:6379> set testkey "hello"
OK
127.0.0.1:6379> info replication
在从节点执行:
redis-cli -p 6380
127.0.0.1:6380> get testkey
"hello"
127.0.0.1:6380> info replication
bind 192.168.1.100
port 6379
protected-mode no
daemonize yes
requirepass masterpassword
bind 192.168.1.101
port 6379
protected-mode no
daemonize yes
replicaof 192.168.1.100 6379
masterauth masterpassword
分别在两台服务器上启动 Redis:
redis-server /path/to/redis.conf
replica-read-only yes
repl-backlog-size 1mb
repl-diskless-sync yes
repl-diskless-sync-delay 5
repl-ping-replica-period 10
repl-timeout 60
redis-cli -h 192.168.1.101 -p 6379
127.0.0.1:6379> REPLICAOF NO ONE
redis-cli -h 192.168.1.102 -p 6379
127.0.0.1:6379> REPLICAOF 192.168.1.101 6379
redis-cli info replication
redis-cli --latency

