redis的主从复制

1.配置一主一从结构

|----------------|----------|
| IP地址 | 主机名 |
| 192.168.10.161 | redis161 |
| 192.168.10.162 | redis162 |
| 192.168.10.163 | redis163 |

环境准备
bash 复制代码
[root@redis161 ~]# yum install -y redis
[root@redis161 ~]# systemctl stop firewalld &&setenforce 0
修改配置文件
bash 复制代码
[root@redis161 ~]# vim /etc/redis.conf 
bind 192.168.10.161
port 6379
[root@redis161 ~]# systemctl restart redis
[root@redis161 ~]# redis-cli -h 192.168.10.161 -p 6379
192.168.10.161:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:69b76fe5c2e039cba288e4388eb34668d3bfd65d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
配置salve服务器
bash 复制代码
[root@redis162 ~]# vim /etc/redis.conf
bind 192.168.10.162
port 6379
[root@redis162 ~]# systemctl restart redis
[root@redis162 ~]# redis-cli -h 192.168.10.162 -p 6379
192.168.10.162:6379> replicaof 192.168.10.161 6379
OK
192.168.10.162:6379> config rewrite
OK
192.168.10.162:6379> exit
[root@redis162 ~]# tail -n 1 /etc/redis.conf 
replicaof 192.168.10.161 6379
[root@redis162 ~]# redis-cli -h 192.168.10.162 -p 6379
192.168.10.162:6379> info replication
# Replication
role:slave
master_host:192.168.10.161
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:476
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:222f317cb008e09781b92761dd79126c34f661ad
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:476
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:476

3)在主服务器host61查看角色

bash 复制代码
[root@redis161 ~]# redis-cli -h 192.168.10.161 -p 6379
192.168.10.161:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.10.162,port=6379,state=online,offset=1176,lag=0
master_replid:222f317cb008e09781b92761dd79126c34f661ad
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1176
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1176
存储数据
192.168.10.161:6379> mset x 1 s 2 z 3
OK
192.168.10.161:6379> keys *
1) "z"
2) "s"
3) "x"

4)在从服务器查看是否同步数据

bash 复制代码
[root@redis162 ~]# redis-cli -h 192.168.10.162 -p 6379
192.168.10.162:6379> keys *
1) "x"
2) "z"
3) "s"
192.168.10.162:6379> mget x z s
1) "1"
2) "3"
3) "2"

2.配置一主多从结构

要求:把host63也配置为host61的从服务器

bash 复制代码
[root@redis163 ~]# vim /etc/redis.conf 
bind 192.168.10.163
port 6379
[root@redis163 ~]# systemctl restart redis
[root@redis163 ~]# redis-cli -h 192.168.10.163 -p 6379
192.168.10.163:6379> info replication 无集群信息
# Replication
role:master
connected_slaves:0
master_replid:79bc218cf3fa5eb9a18417220bb8f7b0372c8859
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
192.168.10.163:6379> REPLICAOF 192.168.10.161 6379  #配置主节点信息
OK
192.168.10.163:6379> CONFIG rewrite
OK
192.168.10.163:6379> exit
[root@redis163 ~]# tail -n 1 /etc/redis.conf 
replicaof 192.168.10.161 6379
[root@redis163 ~]# redis-cli -h 192.168.10.163 -p 6379
192.168.10.163:6379> keys *
1) "x"
2) "s"
3) "z"

在redis161主机查看

bash 复制代码
192.168.10.161:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.10.162,port=6379,state=online,offset=1983,lag=0
slave1:ip=192.168.10.163,port=6379,state=online,offset=1983,lag=1
master_replid:222f317cb008e09781b92761dd79126c34f661ad
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1983
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1983

3.配置主从从结构

bash 复制代码
要求: 把host63恢复为独立的redis服务器,然后配置为host62的从服务器

192.168.10.163:6379> REPLICAOF no one 清除集群信息
192.168.10.163:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:714d4a8767466a816a5732259b5c08f002921bba
master_replid2:222f317cb008e09781b92761dd79126c34f661ad
master_repl_offset:2529
second_repl_offset:2530
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1914
repl_backlog_histlen:616
192.168.10.163:6379> REPLICAOF 192.168.10.162 6369 配置162主机为master节点
192.168.10.163:6379> config rewrite
OK
192.168.10.163:6379> exit
[root@redis163 ~]# tail -n 1 /etc/redis.conf 
replicaof 192.168.10.162 6379
192.168.10.163:6379> info replication
# Replication
role:slave
master_host:192.168.10.162
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:2529
master_link_down_since_seconds:116
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:714d4a8767466a816a5732259b5c08f002921bba
master_replid2:222f317cb008e09781b92761dd79126c34f661ad
master_repl_offset:2529
second_repl_offset:2530
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1914
repl_backlog_histlen:616

在redis162查看角色

bash 复制代码
192.168.10.162:6379> info replication
# Replication
role:slave
master_host:192.168.10.161
master_port:6379
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_repl_offset:2893
slave_priority:100
slave_read_only:1
connected_slaves:1
slave0:ip=192.168.10.163,port=6379,state=online,offset=2893,lag=1
master_replid:222f317cb008e09781b92761dd79126c34f661ad
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2893
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:2893
192.168.10.162:6379> 
相关推荐
小小工匠6 小时前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
麦聪聊数据7 小时前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_7 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡7 小时前
【MySQL数据库】数据类型与表约束
数据库·mysql
ofoxcoding7 小时前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai
曹牧8 小时前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon8 小时前
SQL学习指南——视图
数据库·sql
活宝小娜8 小时前
mysql详细安装教程
数据库·mysql·adb
贤时间8 小时前
codex 助力oracle ebs 开发
数据库·oracle
秉承初心8 小时前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle