文档章节

如何搭建redis中的Replication(主从复制)

jiao1990
 jiao1990
发布于 2015/11/20 21:41
字数 730
阅读 9
收藏 1

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

目录
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> 

本文转载自:http://www.cnblogs.com/linjiqin/p/3568677.html

jiao1990
粉丝 0
博文 6
码字总数 831
作品 0
芜湖
私信 提问
Redis的主从搭建

Redis在作为可内存持久化的Key-Value数据库是使用的过程中是可以做主从服务的。在Redis的大规模集群中Redis的主从服务就是集群实现的基础,在Redis的主从服务中有以下几个优点: 1、master可...

往事_Jim_遗
2017/11/11
0
0
Redis主从复制的配置和实现原理

Redis的持久化功能在一定程度上保证了数据的安全性,即便是服务器宕机的情况下,也可以保证数据的丢失非常少。通常,为了避免服务的单点故障,会把数据复制到多个副本放在不同的服务器上,且...

TurboSanil
09/17
53
0
Redis-3.2主从复制与集群搭建

Redis-3.2主从复制与集群搭建 一、Redis 主从搭建 1.下载并解压 yum install -y gcc gcc-c++ pcre zlib pcre-devel tcl wget http://download.redis.io/releases/redis-3.2.4.tar.gztar -zx......

KaliArch
2017/03/20
0
0
redis主从架构与redis+sentinel 哨兵机制架构搭建(生产可用)

redis的搭建过程,请参考 https://blog.51cto.com/12445535/2385106 接下来,我们再找一台服务器,进行安装redis 实现redis的主从架构 和上面的方法搭建一个redis 只不过 在从redis中的配置文...

马吉辉
04/26
0
0
Redis-3.2主从复制与集群搭建

Redis-3.2主从复制与集群搭建 一、Redis 主从搭建 1.下载并解压 2.优化参数 3.配置文件说明 3.1后台运行 3.2bind地址监听 3.3 日志配置 3.4 开机自启脚本 vim /etc/init.d/redis 4.Redis持久...

adson_sunflower
2017/03/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在C语言中“静态”是什么意思?

我已经在C代码的不同地方看到了static一词。 这就像C#中的静态函数/类(实现在对象之间共享)吗? #1楼 多文件变量作用域示例 在这里,我说明了静态如何影响多个文件中函数定义的范围。 交流...

javail
8分钟前
3
0
利用 FC + OSS 快速搭建 Serverless 实时按需图像处理服务

作者:泽尘 简介 随着具有不同屏幕尺寸和分辨率设备的爆炸式增长,开发人员经常需要提供各种尺寸的图像,从而确保良好的用户体验。目前比较常见的做法是预先为一份图像存放多份具有不同尺寸的...

阿里巴巴云原生
11分钟前
2
0
前端架构最佳实践

Folders-by-Feature Structure 胜过 Folders-by-Type Structure

lilugirl
21分钟前
3
0
Seata AT 模式启动源码分析

从上一篇文章「分布式事务中间件Seata的设计原理」讲了下 Seata AT 模式的一些设计原理,从中也知道了 AT 模式的三个角色(RM、TM、TC),接下来我会更新 Seata 源码分析系列文章。今天就来分...

后端进阶
23分钟前
4
0
Python中“自我”一词的目的是什么?

Python中self词的目的是什么? 我知道它是指从该类创建的特定对象,但是我看不到为什么要将它显式地作为参数添加到每个函数中。 为了说明这一点,在Ruby中,我可以这样做: class myClass ...

技术盛宴
24分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部