开发者学堂课程【Redis 入门到精通(进阶篇):主从复制-运行id(runid)】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/765/detail/13454
主从复制-运行id(runid)
目录
一,命令传播阶段说明
二,命令传播阶段的部分复制
三,服务器运行 ID(runid)
本章主要讲解命令传播的阶段以及服务器运行 ID(runid)
一,命令传播阶段说明
1.当 master 数据库状态被修改后,导致主从服务器数据库状态不一致,此时需要让主从数据同步到一致的状态,同步的动作称为命令传播。
2.master 将接收到的数据变更命令发送给 slave,slave 接收命令后执行命令。
二,命令传播阶段的部分复制
1.命令传播阶段出现了断网现象
(1).网络闪断闪连-忽略
(2).短时间网络中断-部分复制
(3).长时间网络中断-全量复制
2.部分复制的三个核心要素
服务器的运行 id(runid) 主服务器的复制积压缓冲区主从服务器的复制偏移量。
三,服务器运行 ID(runid)
1.概念:服务器运行 id 是每一台服务器每次运行的身份识别码,一台服务器多次运行可以生成多个运行 id。
2.组成:运行 id 由40位字符组成,是一个随机的十六进制字符
例如:fdc9ff13b9bbaab28db42b3d50f852bb5e3fcdce
3.作用:运行 id 被用于在服务器间进行传输,识别身份。
如果想两次操作均对同一台服务器进行,必须每次操作携带对应的运行id,用于对方识别。
4.实现方式:运行 id 在每台服务器启动时自动生成的,master 在首次连接 slave 时,会将自己的运行 id 发送给 slave,slave 保存此 id,通过 info Server 命令,可以查看节点的 runid。
以下为在 master 里运行 info 之后过滤掉的信息相关的代码:
# CPU
used_cpu_sys:0.72
used_cpu_user:0.44
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
# cluster
cluster_enabled:0
# Keyspace
db0:keys=2.expires=0,avg_tt1=0127.0.0.1:6379> info server# # Server
redis_version:4.0.0
redis_git_shal:00000000 redis_git_dirty:0
redis_build_id:7b794c614dd8f182 redis_mode:standalone
os:Linux 3.10.0-957.e17.x86_64 x86_64 arch_bits:64
multiplexing_api:epo11
atomicvar_api:atomic-builtin
gcc_version;4.8.5 process_id:18849
run_id:0176573363a935b8a0685a0fe08d75845b408ce7 tcp_port:6379
uptime_in_seconds:1030 uptime_in_days:0 hz:10
1ru_clock:10782127
executable:/redis-4.0.0/conf/redis-server
confia file:/redis-4.0.0/conf/redis-6379.conf
127 1:6379>
此图里面也可以看到运行 id,也就是此图有标记的一行。