Redis主从同步原理解析

redis主从同步原理

在主从数据同步过程中,

master只在第一次同步时创建了RDB文件,用此做基础进行同步。

之后的同步,都是通过增量传输命令的方式(AOF)进行同步。

环境描述:

master:192.168.2.100    不开启RDB和AOF

slave:192.168.2.200    开启RDB和AOF

配置信息:

master:

# vim etc/redis.conf

#save 600 5           //禁用RDB

appendonly no       //禁用AOF

requirepass 123456        //指定验证密码

slave:

# vim etc/redis.conf

save 600 5           //禁用RDB

appendonly yes      //禁用AOF

appendfilename "appendonly.aof"        //指定AOF文件

appendfsync everysec                //每秒强制写入磁盘一次

no-appendfsync-on-rewrite no        //在日志重写时,不进行命令追加操作

auto-aof-rewrite-percentage 100            //当前AOF超过上一次AOF大小100%时重写

auto-aof-rewrite-min-size 64mb           //日志重写最小值

slaveof 192.168.2.100 6379          //指定主库IP和端口

masterauth 123456          //指定主库登录密码

启动redis:

master:# redis-server etc/redis.conf

slave:# redis-server etc/redis.conf

观察同步过程

master:

# redis-cli -a 123456

127.0.0.1:6379> info replication         //查看主从关系是否正确

127.0.0.1:6379> keys *               //此时,master安装目录下是没有RDB文件的

(empty list or set)

127.0.0.1:6379> set name zhagnsan       //创建key

OK

# ll /usr/local/redis-3.0.6-6379           //目录下生成一个RDB文件,用作和slave同步的基础

-rw-r--r--  1 root root    35 5月  20 21:59 dump_6379.rdb

slave:

# redis-cli

127.0.0.1:6379> info replication         //查看主从关系是否正确

127.0.0.1:6379> keys *            //数据已同步

1) "name"

127.0.0.1:6379> get name

"zhagnsan"

# ll /usr/local/redis-3.0.6-6379         //目录下生成RDB文件和AOF文件

-rw-r--r--  1 root root    60 5月  20 21:59 appendonly.aof

-rw-r--r--  1 root root    18 5月  20 21:58 dump.rdb

master:

# redis-cli -a 123456

127.0.0.1:6379> set age 26               //新增2个key

OK

127.0.0.1:6379> set home beijing

OK

# ll /usr/local/redis-3.0.6-6379           //RDB文件大小没变化

-rw-r--r--  1 root root    35 5月  20 21:59 dump_6379.rdb

slave:

# redis-cli

127.0.0.1:6379> keys *            //数据已同步

1) "age"

2) "name"

3) "home"

# ll /usr/local/redis-3.0.6-6379         //发现:RDB文件大小不变,变化的只是AOF

-rw-r--r--  1 root root   126 5月  20 22:00 appendonly.aof

-rw-r--r--  1 root root    18 5月  20 21:58 dump.rdb

总结:在数据同步过程中,master只在第一次同步时创建了RDB文件,

之后的同步,都是通过增量传输命令的方式进行同步。

原文地址:http://blog.51cto.com/13690439/2118890

时间: 2024-11-05 20:26:27

Redis主从同步原理解析的相关文章

redis主从同步原理

redis主从: 作用: 实现数据的实时备份,可用来实现redis的读写分离及redis高可用 主从同步原理: 一主一从环境: 环境:2台redis,一台master一台slave 1,master等待命令进入 2,slave连接master,发送一个sync命令 3,master开始执行BESAVE,并使用缓冲区记录BESAVE之后所执行的所以写命令 4,slave端如果现在有请求进来,可以根据配置项来决定是继续用当前数据做处理客户端的请求还是给客户端返回报错 5,master BESAVE执

Redis主从同步原理-SYNC【转】

和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,下图为级联结构.   Redis主从复制可以根据是否是全量分为全量同步和增量同步. 1 全量同步 Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份.具体步骤如下:  1)从服务器连接主服务器,发送SYNC命令:  2)主服务器接收到SYNC命名后,开始

Redis主从同步原理-SYNC

和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构. Redis主从复制可以根据是否是全量分为全量同步和增量同步. 1 全量同步 Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份.具体步骤如下: 1)从服务器连接主服务器,发送SYNC命令: 2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成

Redis——主从同步原理

刚接触到Redis,首先对Redis有一个初步的了解. 开源,免费,遵守BSD协议,key-value数据库. 可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用. 多种key-value类型的数据. 主从模式的数据备份. 高性能读写. redis所有操作都是原子性的,单个操作的原子性可以通过multi和exec指令包起来完成多个操作的原子性. 一个key可以存储很大,可以达到1gb,不像memcached只能保存1mb的数据. 主要缺点是数据库容量受物理内存的限制,不能作海量数据的高性

MYSQL主从同步原理解析!

大神请绕行! 一.为什么要主从同步? 我们会对数据库进行大量的读写操作,而如果数据库非常庞大的话,对我们的主机压力非常大,我们想到了一个解决的办法:两台服务器,一台只用来读取操作,一台只用来写入操作. 二.用途: 实时灾备,用于故障切换: 读写分离,提供查询服务: 备份,避免影响业务. 三.实战演练 主从部署必要条件: 主库开启binlog日志(设置log-bin参数) 主从server-id不同 从库服务器能连通主库 1.一主一从 (1)实战环境 两台服务器(centos7): 主服务器IP:

Redis主从同步原理-PSYNC【转】

Reids复制数据主要有2种场景: 1. 从服务器从来第一次和当前主服务器连接,即初次复制 2. 从服务器断线后重新和之前连接的主服务器恢复连接,即断线后重复制 ??对于初次复制来说使用SYNC命令进行全量复制是合适高效的,但是对于断线后重复制来说效率就不太能接受了.举例来说:  ??如图所示,Master在断开连接期间只传播了3个写入命令,但是重新连接之后却要全量复制,显然这是低效并且不太必要的. PSYNC概念 ??为了应对这种情况,Redis在2.8版本提供了PSYNC命令来带代替SYNC

Redis主从同步分析

一.Redis主从同步原理1.1 Redis主从同步的过程配置好slave服务器连接的master后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接断开后的重新连接,master都会启动一个后台进程,将数据库快照保存到文件中.同时master主进程会开始收集新的写命令并缓存起来.当后台进程完成写文件后,master就将快照文件发送给slave,slave将文件保存到磁盘上,然后加载到内存将数据库快照恢复到slave上.slave完成快照文件的恢复后

Redis主从同步分析(转)

一.Redis主从同步原理 1.1 Redis主从同步的过程 配置好slave服务器连接的master后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接断开后的重新连接,master都会启动一个后台进程,将数据库快照保存到文件中.同时master主进程会开始收集新的写命令并缓存起来.当后台进程完成写文件后,master就将快照文件发送给slave,slave将文件保存到磁盘上,然后加载到内存将数据库快照恢复到slave上.slave完成快照文件的恢

redis主从同步与读写分离

一.原理 Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构.下面是关于redis主从复制的一些特点: 1.master可以有多个slave. 2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构. 3.主从复制不会阻塞master.也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求.相反s