Redis同步(主从复制)

目录
1、Replication的工作原理
2、如何配置Redis主从复制
3、应用示例

1、Replication的工作原理
在Slave启动并连接到Master之后,它将主动发送一条SYNC命令。此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。

如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。

2、如何配置Redis主从复制
1、同时启动两个Redis服务器,可以考虑在同一台机器上启动两个Redis服务器,分别监听不同的端口,如6379(master)和6380(slave)。
2、在Slave服务器上执行一下命令:

d:\dev\redis-2.4.5-win64>redis-cli.exe -h 127.0.0.1 -p 6380 #这里我们假设Slave的端口号是6380
redis 127.0.0.1:6380> slaveof 127.0.0.1 6379 #假设Master和Slave在同一台主机,Master的端口为6379
OK
redis 127.0.0.1:6380>

上面的方式只是保证了在执行slaveof命令之后,redis-6380成为了redis-6379的slave,一旦服务(redis-6380)重新启动之后,他们之间的复制关系将终止。
如果希望长期保证这两个服务器之间的Replication(主从复制)关系,可以在redis-6380的配置文件中做如下修改:
将# slaveof <masterip> <masterport>改为slaveof 127.0.0.1 6379,保存退出。
这样就可以保证Redis-6380服务程序在每次启动后都会主动建立与Redis-6379的Replication连接了。

3、应用示例
这里我们假设Master-Slave已经建立。

#启动master服务器,即启动6379端口redis服务器,操作如下:
C:\Users\lenovo>cd D:\dev\redis-2.4.5-win64
C:\Users\lenovo>d:
D:\dev\redis-2.4.5-win64>redis-server.exe redis.conf

#启动slave服务器,即启动6380端口redis服务器,操作如下:
C:\Users\lenovo>cd D:\dev\redis-2.4.5-win64
C:\Users\lenovo>d:
D:\dev\redis-2.4.5-win64>redis-server.exe redis6380.conf

#启动master客户器,操作如下:
C:\Users\lenovo>cd D:\dev\redis-2.4.5-win64
C:\Users\lenovo>d:
D:\dev\redis-2.4.5-win64>redis-cli.exe -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379>

#启动master客户器,操作如下:
C:\Users\lenovo>cd D:\dev\redis-2.4.5-win64
C:\Users\lenovo>d:
D:\dev\redis-2.4.5-win64>redis-cli.exe -h 127.0.0.1 -p 6380
redis 127.0.0.1:6379>

#清空Master当前数据库中的所有Keys。
redis 127.0.0.1:6379> flushdb
OK
redis 127.0.0.1:6379>

#清空Master当前数据库中的所有Keys。
redis 127.0.0.1:6380> flushdb
OK
redis 127.0.0.1:6380>

#在Master中创建新的Keys作为测试数据。
redis 127.0.0.1:6379> set mykey hello
OK
redis 127.0.0.1:6379> set mykey2 world
OK
#查看Master中存在哪些Keys。
redis 127.0.0.1:6379> keys *
1) "mykey"
2) "mykey2"

#在Slave中查看所有的key。
redis 127.0.0.1:6380> keys *
1) "mykey"
2) "mykey2"

#在Master中删除其中一个测试Key,并查看删除后的结果。
redis 127.0.0.1:6379> del mykey2
(integer) 1
redis 127.0.0.1:6379> keys *
1) "mykey"

#在Slave中查看是否mykey2也已经在Slave中被删除。
redis 127.0.0.1:6380> keys *
1) "mykey"

注意:
a、如果在Slave中删除mykey,不能同时删除Master中的mykey。
b、Slave启动顺利跟Master启动无关联。

时间: 2024-11-16 09:26:30

Redis同步(主从复制)的相关文章

Redis基础学习(五)&mdash;Redis的主从复制

一.概述     Redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件全量传输给slave,然后再将dump后的操作实时同步到slave中.让从服务器(slave server)成为主服务器(master server)的精确复制品. 以下是关于 Redis 复制功能的几个重要方面: (1)Redis 使用异步复制.从Redis 2.8 开始,从服务器会以每秒一次的频率向主服务器报告复制流(replication stream)的处理进度. (

redis的主从复制部署和使用

reids一种key-value的缓存数据库目前非常流行的被使用在很多场景,比如在数据库读写遇到瓶颈时缓存且读写分离会大大提升这块的性能,下面我就说说redis的主从复制 首先需要启动多个redis实例,master.slave.slave,持久化.端口更改等其他配置在此不在多说,所有的配置都在.conf文件中 作为master节点的conf不需做配置,其中slave-read-only yes表示所有和master相关的字节都为只读的, 要作为slave字节的conf需要配置,放开slaveo

NOSQL之【redis的主从复制】

一.Redis的Replication: 下面的列表清楚的解释了Redis Replication的特点和优势.    1). 同一个Master可以同步多个Slaves.    2). Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力.因此我们可以将Redis的Replication架构视为图结构.    3). Master Server是以非阻塞的方式为Slaves提供服务.所以在Master-Slave同步期间,客户端仍然可以提交查询或修改

菜鸟爬坑--Redis学习与探索(三):Redis的主从复制

什么是Redis主从复制 主从复制,当用户往Master端写入数据时,通过Redis Sync机制将数据文件发送至Slave,Slave也会执行相同的操作确保数据一致:且实现Redis的主从复制非常简单. Redis主从复制原理 在Slave启动并连接到Master之后,它将主动发送一个SYNC命令.此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步.而Slave服务器在接收到数据库

redis的主从复制配置

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

redis 的主从复制机制

1.redis的主从复制是什么,我们看看那官网解释: 注: redis 的复制是配置了 master-slave 复制,这种机制允许 从redis服务器能够准确地复制 主服务器的内容. 主要包括:(英文翻译的不太好,看得不太明白的朋友去找找相关的文档) a.主服务器能能有多个从服务器 b.redis 使用异步的复制.从服务器能够实时地获取在复制流中处理过的数据. c.从服务器能够接收其他从服务器上的连接.除了连接主服务器上的许多从服务器,从服务器也能够连接具有级联结构的其他从服务器.(从服务器上

redis之(十四)redis的主从复制的原理

一:redis主从复制的原理,步骤. 第一步:复制初始化 --->从redis启动后,会根据配置,向主redis发送SYNC命令.2.8版本以后,发送PSYNC命令. --->主redis收到SYNC命令后,开始在后台保存快照文件(即RDB持久化的过程),并将保存快照期间接收到的命令缓存起来. --->当主redis完成快照后,主redis会将快照文件和缓存命令发送给从redis.复制初始化结束. --->当主redis的复制初始化结束后,主redis每当收到写命令就会异步将写命令

redis实现主从复制-单机测试

一.redis实现主从复制-单机测试1.安装redis tar -zxvf redis-2.8.4.tar.gzcd redis-2.8.4make && make install2.配置主从关系需要在slave服务器的redis.conf中配置slaveof 192.168.1.1 6379 #指定master的ip和端口具体配置见下:cp redis.conf redis-master-6379.confvi2 redis-master-6379.conflogfile "/

redis的主从复制和持久化

主从复制 虽然redis有持久化机制,但是有时redis服务器重启也会丢失数据,因为redis重启后会将硬盘中的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能就会导致数据丢失,如果通过redis的主从复制就能很好的避免这种单点故障. 主redis数据库有两个从redis,即使其中一台服务器宕机,其他两台服务器照样可以正常工作 主redis和从redis是保持实时同步的,当主redis写入数据时通过主从复制机制会复制到两个从redis服务器上. 只有一个主redis,可以有多个从redi