Redis系列之主从复制集群搭建

在上一篇博客,我们已经知道怎么搭建一个redis单机版,这篇博客基于之前的基础,来搭建一个redis主从同步,本博客框架是一主二从,一个主节点,其它两个从节点

实验环境

  • CentOS7
  • Xshell6
  • XFtp6
  • Redis6.2.2

主从关系

  • 主节点:192.168.65.109
  • 从节点1:192.168.66.149
  • 从节点2:192.168.66.108

修改redis配置文件

查看从节点redis配置文件

shell 复制代码
vi redis.conf

修改,注意改从节点就可以,加上主节点的ip和端口

shell 复制代码
replicaof [masterip] [masterport] 

验证是否配置成功

shell 复制代码
127.0.0.1:6379>config get replicaof
) "replicaof"
2) "192.168.65.109 6379"

同理,再配置一个从节点即可

重启redis

重启从节点redis,并指定修改的redis配置文件位置

shell 复制代码
redis-server /usr/local/redis/config/redis.conf

主从信息查看

进入从节点的redis-cli,使用info replication查看主从关系,可以看到

从节点主要参数说明

shell 复制代码
# Replication
role:slave # 角色
master_host:192.168.65.109 # 主节点ip
master_port:6379 # 主节点端口
master_link_status:up # 连接状态 up是正常同步连接状态 down是主节点有问题
master_last_io_seconds_ago:3 # 主库多少秒没发送数据到从库
master_sync_in_progress:0 # 是否正在跟主服务同步
slave_repl_offset:630 # 从节点偏移量
slave_priority:100 # 选举时成为主节点的优先级,数值越大优先级越高,0表示不会成为主节点
slave_read_only:1 # 是否为只读从库
replica_announced:1 
connected_slaves:0 #  连接的从库实例数
master_failover_state:no-failover
master_replid:77f2fcefc1507a0fe8e6ab6f82f7873fc3f62d7a # master启动时生成的40位16进制的随机字符串,用来标识master节点
master_replid2:0000000000000000000000000000000000000000 # slave切换为master节点之后,会生成自己的master标识,之前的master节点的标识存到master_replid2的位置
master_repl_offset:630 # 已经写入的偏移量
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576 # 复制积压的缓存区大小
repl_backlog_first_byte_offset:1
repl_backlog_histlen:630

在master节点,查看主从消息

shell 复制代码
127.0.0.1:6379> info replication
# Replication
role:master # 角色
connected_slaves:2 # 从节点数量
slave0:ip=192.168.66.108,port=6379,state=online,offset=308,lag=0 # 从节点的信息,状态,偏移量
slave1:ip=192.168.66.149,port=6379,state=online,offset=308,lag=1
master_failover_state:no-failover
master_replid:77f2fcefc1507a0fe8e6ab6f82f7873fc3f62d7a # master启动时生成的40位16进制的随机字符串,用来标识master节点
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:308 # master已经写入的偏移量
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576 # 缓存区大小
repl_backlog_first_byte_offset:1
repl_backlog_histlen:308 # 缓存区已有数据的大小,是一个环形,跟mysql的redo log一样会覆盖

手动设置主从库

解除主从关系

shell 复制代码
127.0.0.1:6379> slaveof no one
OK

添加从节点

shell 复制代码
127.0.0.1:6379> slaveof 192.168.65.109 6379
OK

设置密码

如果redis有设置密码,注意主从节点的密码要保持一致比较好,设置密码修改redis.conf配置文件,加上requirepass配置

shell 复制代码
requirepass 123456

搭建主从集群的,每个配置文件都要加上masterauth

shell 复制代码
masterauth 123456

加好配置文件后,redis-cli重新加载配置文件

shell 复制代码
127.0.0.1:6379>config rewrite
OK

不改配置文件,也可以用命令设置,同理也要config rewrite重新加载一下

shell 复制代码
127.0.0.1:6379>config set requirepass 123456
OK
127.0.0.1:6379>config rewrite
OK

然后重启一下redis

shell 复制代码
redis-server /usr/local/redis/config/redis.conf
相关推荐
大模型码小白7 分钟前
数据可视化:AI 生成 HTML5 动态交互式数据图表
前端·数据库·人工智能·深度学习·机器学习·信息可视化·html5
风哥2号8 分钟前
数据库教程FGMT26‑1‑GoldenGate数据库容灾迁移01(OGG同构异构、数据库迁移、数据同步、容灾复制)
数据库·oracle
颜颜yan_20 分钟前
Firebird 鸿蒙 PC 适配全记录:打通数据库内核、Qt 管理端与原生维护工具
数据库·qt·harmonyos
风哥2号21 分钟前
数据库教程FGMT25‑Oracle多租户架构CDB与PDB运维管理
数据库·oracle
程序猿乐锅25 分钟前
【黑马点评 | 第一篇】从 Session 到 Redis+Token 的改造与拦截器实现
数据库·redis·缓存
南京兴帝文化传媒有限公司32 分钟前
基于地图平台的本地商户信息优化:药店夜间服务标注与客户转化实操
前端·javascript·数据库·人工智能·geo 优化·geo优化避坑·ai搜索获客
u01090535937 分钟前
NAS远程访问内网穿透方案之使用神卓N600实现不限速方法
服务器·网络·数据库
野生技术架构师44 分钟前
Redis Hot Key 与 Big Key:危害、发现与解决方案
数据库·redis·缓存
杨云龙UP1 小时前
DB2 HADR 主备架构活动日志参数优化操作手册
linux·运维·服务器·数据库·db2·db2 hadr·日志参数调整
学渣超1 小时前
从一次早高峰数据库告警说起:你真的理解缓存该如何落地应用吗?
redis·后端·架构