Redis 主从同步的过程
配置好 slave 服务器连接的master后, slave 会建立和 master 的连接,然后发送 sync 命令。无论是第一次同步建立的连接还是连接断开后的重新连接, master 都会启动一个后台进程,将数据库快照保存到文件中.同时 master 主进程会开始收集新的写命令并缓存起来。当后台进程完成写文件后, master 就将快照文件发送给 slave , slave 将文件保存到磁盘上,然后加载到内存将数据库快照 恢复 到 slave 上。slave完成快照文件的恢复后, master 就会把缓存的命令都转发给 slave,slave更新内存数据库 。后续 master 收到的写命令都会通过开始建立的连接发送给 slave 。从 master 到 slave 的同步数据的命令和从 client到master 发送的命令使用相同的协议格式。当 master 和 slave 的连接断开时, slave 可以自动重新建立连接。如果 master 同时收到多个 slave 发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有 slave 。
Redis 主从同步的特点
主从同步具有明显的分布式缓存特点,主要包括这些方面:
1 )一个 master 可以有多个 slave,一个slave也可以有多个slave ;
2 ) slave 不仅可以连接到 master , slave 也可以连接其他 slave 形成树状结构;
3 )主从同步不会阻塞 master,但是会阻塞slave 。也就是说当一个或多个 slave 与 master 进行初次同步数据时, master 可以继续处理 client 发来的请求。相反 slave 在初次同步数据时则会阻塞不能处理 client 的请求;
4 )主从同步可以用来提高系统的可伸缩性,我们可以用多个 slave 专门处理 client 的读请求, 也可以用来做简单的数据冗余或者只在slave上进行持久化从而提升集群的整体性能。
主从复制优化要点:
Master最好不要做任何持久化工作,包括内存快照和AOF日志文件,特别是不要启用内存快照做持久化。
如果数据比较关键,某个Slave开启AOF备份数据,策略为每秒同步一次。
为了主从复制的速度和连接的稳定性,Slave和Master最好在同一个局域网内。
为了Master的稳定性,主从复制不要用图状结构,用单向链表结构更稳定,即主从关系为:Master<--Slave1<--Slave2<--Slave3
Redis主从配置步骤:
1、编辑主从配置文件
主配置文件:
include ./redis.conf daemonize yes pidfile /var/run/redis.pid port 6379 bind 192.168.10.128 logfile /opt/redis/logs/redis.log requirepass 123456
从配置文件:
include ./redis.conf daemonize yes pidfile /var/run/redis2.pid port 6380 bind 192.168.10.128 logfile /opt/redis/logs/redis2.log slaveof 192.168.10.128 6379 masterauth 123456 requirepass 234567
2、启动主Redis:
cd /opt/redis/bin
redis-server ./local-redis.conf
tail -f /opt/redis/logs/redis.log查看日志
3、启动从Redis:
cd /opt/redis/bin2
redis-server ./local-redis.conf
tail -f /opt/redis/logs/redis2.log查看日志
4、测试数据同步:
终端一:
cd /opt/redis/bin
redis-cli -h 192.168.10.128 -p 6379 -a 123456
set cjm 123
get cjm
终端二:
cd /opt/redis/bin2
redis-cli -h 192.168.10.128 -p 6380 -a 234567
get cjm
主从切换的步骤:
停止主Redis
redis-cli -h 192.168.10.128 -p 6379 -a 123456
shutdown
将从redis设成主redis
redis-cli -h 192.168.10.128 -p 6380 -a 234567
slaveof NO ONE
测试从redis是否切换为主redis
set cjm 111
get cjm
原来的主redis恢复正常了,要重新切换回去
将现在的主redis的数据进行保存
redis-cli -h 192.168.10.128 -p 6380 -a 234567
save
将现在的主redis根目录下dump.rdb文件拷贝覆盖到原来主redis的根目录
cp -frp /opt/redis/bin2/dump.rdb /opt/redis/bin/dump.rdb
启动原来的主redis
redis-server ./local-redis.conf
tail -f /opt/redis/logs/redis.log
在现在的主redis中切换
slaveof 192.168.10.128 6379
相关推荐
### Redis主从复制和集群配置详解 #### 一、Redis主从复制原理及配置 **1.1 概述** Redis的主从复制机制是一种重要的数据同步方式,它支持一个或多个从数据库(slave)与主数据库(master)之间进行数据同步。其中,...
下面是对 Redis 的常用命令、配置文件、持久化、事务、主从复制、Jedis 使用的详细讲解。 Redis 常用命令 Redis 提供了很多有用的命令来管理和操作数据。下面是一些常用的 Redis 命令: * SET key value:设置...
Redis 主从服务器配置 Redis 作为一个 NoSQL 型数据库,具有高性能、高扩展性和高可靠性的特点。在本文中,我们将详细介绍如何配置 Redis 主从服务器,以实现高可用性和高性能的缓存系统。 Redis 概述 Redis 是一...
### Redis 主从复制集群知识点详解 #### 一、Redis 主从复制概述 Redis 主从复制是一种数据冗余机制,主要用于实现读写分离、负载均衡以及数据备份等目的。通过搭建主从复制集群,可以有效避免单点故障问题,并且...
本文档主要介绍了LAMP架构的安装和配置,以及Redis主从复制的设置。LAMP架构是指Linux操作系统、Apache HTTP服务器、MySQL数据库和PHP编程语言的组合,而Redis则是一个开源的、基于内存的数据存储系统,本文将详细...
当 Master 恢复正常时,从 Slave 同步数据,同步数据之后关闭主从复制功能,恢复 Master 身份,于此同时 Slave 等待 Master 同步数据完成之后,恢复 Slave 身份。 2. Keepalived 介绍: Keepalived 是一个基于 ...
Redis 主从复制和哨兵配置手册 Redis 主从复制是一种高可用性解决方案,可以确保数据的安全和可靠性。在这个手册中,我们将详细介绍 Redis 主从复制的配置和哨兵的配置。 环境准备 在开始配置 Redis 主从复制之前...
在 Redis 的主从复制中,主节点负责接收客户端的写请求,并将修改操作(命令)传播到所有从节点。从节点则定期同步主节点的数据,确保与主节点保持一致。这样,即使主节点出现问题,从节点也能接管服务,保障系统的...
windows下redis主从复制。一个master,两个slave。附带博客介绍https://blog.csdn.net/xixiyuguang/article/details/105121660
本文将深入探讨Redis主从复制的机制,包括全同步和部分同步的过程,以及积压空间在主从复制中的作用。 在Redis主从复制中,有两种同步方式:全同步和部分同步。全同步发生在主从服务器初次建立连接或从服务器需要...
Redis主从复制是其HA的基础,它允许一个Redis实例(主节点)的数据被多个实例(从节点)实时同步。当主节点出现问题时,可以快速切换到一个从节点继续提供服务。以下是主从复制的基本步骤: 1. 配置主节点:在主...
redis服务配置,配置redis主从复制,多个哨兵监控redis主服务,自动切换服务
一、Redis主从复制 1. **安装Redis**:首先,你需要在Linux服务器上安装Redis。可以通过包管理器如`apt-get`或`yum`进行安装,或者下载源码编译安装。 2. **启动Redis服务**:安装完成后,启动Redis服务,通常命令...
在实际部署中,Keepalive确保了Redis节点间的连接稳定,Twemproxy作为代理,负责将客户端请求分发到多个Redis实例,同时处理读写分离,而Redis主从复制则提供了数据的备份和故障恢复能力。这样的架构可以提高系统的...
总结以上步骤,完成Redis主从配置与高可用哨兵模式的搭建,再整合Spring Cache,可以使应用程序在保证性能的同时具备高可用性。需要注意的是,所有的配置操作都需要在保证安全的前提下进行,避免生产环境下的操作...
配置Redis主从复制的步骤如下: 1. **启动Redis服务器**:确保主节点和从节点都已经正确安装并启动。主节点默认在6379端口运行,从节点可以在其他任意未使用的端口上启动。 2. **修改从节点配置**:在从节点的配置...
在本例中,我们将探讨如何设置Redis主从复制,配置密码保护,通过配置文件启动Redis,并引入Sentinel哨兵系统来实现故障切换。 首先,我们需要准备至少三个Redis实例,一个作为主节点(master),两个作为从节点...