logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔4
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置
前端编程3
前端基础知识16
UniApp15
Vue框架19
Java编程7
Java基础知识14
SpringBoot31
SpringMVC14
MyBatis8
SpringCloud15
RocketMQ1
MyCat1
数据库4
MySQL6
Redis7
MongoDB10
H21
Java技术栈4
知识整理分布式锁的实现方案MySQL事务MySQL的锁
软件工具箱14
IDEAGitMavenGradleNginx安装Nginx配置JMeter压测OllamaPicGoRustFSVSCodeDockerObsidianObs录制
Linux知识11
树莓派安装及使用ArchLinux:常用软件ArchLinux:基础系统安装ArchLinux:深度优化ArchLInux:图形化界面安装ArchLinux:Nirifrp内网穿透Jar启动脚本Linux常用命令VirtualBox安装CentOSVirtualBox安装Ubuntu
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv
创意设计2
Blender:入门知识UI设计基础知识
AI相关9
Claude CodeHermes AgentOpenAI基本使用OpenAI工具调用OpenAI记忆管理OpenAI推理执行OpenAI开发框架Langchainllama.cpp

主从复制

指一台Redis服务器的数据复制到其他Redis服务器,前者称为主节点,后者称为从节点

数据的复制是单向的,只能由主节点到从节点,主节点以写为主,从节点以读为主

默认情况下,每台Redis都是主节点,且一个主节点可以有多个从节点(或没有),但是一个从节点只能有一个主节点

作用

一般来说,在实际的项目中,只使用一台Redis是万万不能的(宕机),原因:

环境配置

只配置从库,不用配置主库

查看Redis环境信息

auth 密码 # 如果redis配置了密码

127.0.0.1:6379> info replication
# Replication
role:master    # 角色
connected_slaves:0   # 从机数量
master_failover_state:no-failover
master_replid:4476ee24aeddfa0558367605bd496a0aab0908e8
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

同一服务器中起一主二从实例:

  1. 复制3分配置文件
  2. 修改端口号
  3. 修改PID名
  4. 修改日志名
  5. 修改持久化备份文件dump.rdb文件名
  6. 启动

配置从机认主机:

命令式(暂时的)

  1. 用客户端连接上
  2. 执行命令SLAVEOF host port
  3. 查看信息info replication

配置文件(永久,真实环境)

# replicaof <masterip> <masterport>

注意:

两个概念:

  1. 全量复制:当从机接收到数据文件后,将其存盘并加载到内存(连接到主机时一定会自定执行一次)
  2. 增量复制:主机会收集所有的修改操作命令一次传给从机,完成同步(主机发生写操作后)

主从复制模型

宕机后手动配置主机

给一个从机执行以下命令

slaveof no one

其他从机同样需要手动配置到这个主机来

注意

主从复制
环境配置
主从复制模型
宕机后手动配置主机