欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis主从复制

程序员文章站 2022-07-05 11:20:02
最近在看付磊,张益军老师的《Redis开发与运维》。学到了很多,也遇到了很多坑,这里我想把比较重要的主从复制这一章节,我把自己的理解与实践记录下来,方便自己的学习,也为社区做一点贡献。 (1):一主二仆 概念: 主从复制最经典的结构就是 "一主二仆"。即一个master主机,两个slave从机。一个 ......

环境配置

只配置从库,不配置主库

127.0.0.1:6379> info replication # 查看当前的信息
#Replication
role:master #角色 master
connected_slaves:0 # 没有从机
master_replid:0001a2d30c03aa104281f5d9aaeac6f908785dc7
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

复制3个redis.conf 文件,然后修改对应的信息

1、端口
2、pid名字
3、log文件名字
4、dump.rdb名字
修改完毕之后,启动三个redis服务器
Redis主从复制

一主二从

默认情况下,每台Redis服务器都是主节点;一般情况下只配置从机

认主机! 一主(79)二从(80、81)

从机6380

127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:294
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:ba86452e653a55307933140b878d224cc5185fd5
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:294
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:281
repl_backlog_histlen:14

从机6381

127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:98
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:ba86452e653a55307933140b878d224cc5185fd5
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:98
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:98

主机6379

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6381,state=online,offset=294,lag=0
slave1:ip=127.0.0.1,port=6380,state=online,offset=294,lag=0
master_replid:ba86452e653a55307933140b878d224cc5185fd5
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:308
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:308

以上是用命令配置的,真实应用中是在配置文件中配置,这样才是永久的。
Redis主从复制

主从复制的细节

主机才能写,从机只能读,主机中的所有信息和数据,都会自动被从机保存!

主机写
Redis主从复制
从机读,从机不能写,只能读
Redis主从复制

复制原理

Slave 启动成功连接到master后会发生一个sync同步命令
master街道命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕后,master将传送整个文件到slave,并完成一次完全同步。
全量复制: slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
增量复制 master继续将新的所有收集到的修改命令依次传给slave,完成同步
但是只要是重新连接master,一次完全同步(全量复制)将被自动执行

本文地址:https://blog.csdn.net/qq_41915921/article/details/107467010

相关标签: redis