Redis-主从复制

一、Redis的Replication:

    这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了。相信在阅读完这篇Blog之后你也可以轻松做到。这里我们还是先列出一些理论性的知识,后面给出实际操作的案例。
    下面的列表清楚的解释了Redis Replication的特点和优势。
    1). 同一个Master可以同步多个Slaves。
    2). Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。因此我们可以将Redis的Replication架构视为图结构。
    3). Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。
    4). Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据。
    5). 为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。即便如此,系统的伸缩性还是得到了很大的提高。
    6). Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。
    
二、Replication的工作原理:

    在Slave启动并连接到Master之后,它将主动发送一个SYNC命令。此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集 的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其 存盘并加载到内存中。此后,Master继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命 令,从而达到最终的数据同步。
    如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。
    
三、如何配置Replication:

    见如下步骤:
    1). 同时启动两个Redis服务器,可以考虑在同一台机器上启动两个Redis服务器,分别监听不同的端口,如6379和6380。
    2). 在Slave服务器上执行一下命令:
    /> redis-cli -p 6380   #这里我们假设Slave的端口号是6380
    redis 127.0.0.1:6380> slaveof 127.0.0.1 6379 #我们假设Master和Slave在同一台主机,Master的端口为6379
    OK
    上面的方式只是保证了在执行slaveof命令之后,redis_6380成为了redis_6379的slave,一旦服务(redis_6380)重新启动之后,他们之间的复制关系将终止。
    如果希望长期保证这两个服务器之间的Replication关系,可以在redis_6380的配置文件中做如下修改:
    /> cd /etc/redis  #切换Redis服务器配置文件所在的目录。
    /> ls
    6379.conf  6380.conf
    /> vi 6380.conf
    将
    # slaveof <masterip> <masterport>
    改为
    slaveof 127.0.0.1 6379
    保存退出。
    这样就可以保证Redis_6380服务程序在每次启动后都会主动建立与Redis_6379的Replication连接了。
    
四、应用示例:

    这里我们假设Master-Slave已经建立。
    #启动master服务器。
    [root@Stephen-PC redis]# redis-cli -p 6379
    redis 127.0.0.1:6379>
    #情况Master当前数据库中的所有Keys。
    redis 127.0.0.1:6379> flushdb
    OK
    #在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服务器。
    [root@Stephen-PC redis]# redis-cli -p 6380
    #查看Slave中的Keys是否和Master中一致,从结果看,他们是相等的。
    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"

转载于:https://www.cnblogs.com/JohnABC/p/3343635.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.wav音乐文件转换为.fft.npy频谱格式文件

需要修改的地方 十个文件夹&#xff0c;每个文件夹下都有100首.au格式的音乐&#xff0c;这里举个例子&#xff0c;那其中5个类别进行转换 genre_list ["classical", "jazz", "country", "pop", "rock", "metal"…

WINDOWS编程笔记 2012.2.7

操作系统感知事件和传递事件是通过消息机制来实现的typedef struct tagMSG{ HWND hwnd; //窗口的句柄 UINT message; WPARAM wParam; //信息的附加参数 LPARAM lParam; DWORD time; //消息传递的时间 POINT pt; //消息投递的时候&#xff0c;光标的位置}…

php 邮件验证_PHP程序来验证电子邮件地址

php 邮件验证Suppose there is a form floating where every user has to fill his/her email ID. It might happen that due to typing error or any other problem user doesnt fill his/her mail ID correctly. Then at that point, the program should be such that it sho…

【C++grammar】结构化绑定

目录定义1、用于原生数组的结构化绑定声明2、用于std::array的结构化绑定声明3、用于对象数据成员的结构化绑定声明定义 结构化绑定声明是一个声明语句&#xff0c;意味着声明了一些标识符并对标识符做了初始化。将指定的一些名字绑定到初始化器的子对象或者元素上。 对于初始…

URAL 1106 Two Teams (DFS)

题意 小组里有N个人&#xff0c;每个人都有一个或多个朋友在小组里。将小组分成两个队伍&#xff0c;每个队伍的任意一个成员都有至少一个朋友在另一个队伍。 思路 一开始觉得和前几天做过的一道2-sat&#xff08;每个队伍任意两个成员都必须互相认识&#xff09;相似然后就往那…

七、逻辑回归项目实战---音乐分类器

一、项目需求 训练集数据为六类音乐([“classical”, “jazz”, “country”, “pop”, “rock”, “metal”])&#xff0c;格式为.wav&#xff0c;每类音乐都有100首 音乐分类器项目&#xff0c;主要运用到了傅里叶变换函数 很多东西越在高维空间处理起来就会变得越是简单 例…

仿京东左侧栏目导航

效果图&#xff1a; 查看效果&#xff1a;http://www.miiceic.org.cn/eg/eg10/abzc.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http:…

python创建矩阵_在Python中创建矩阵的Python程序

python创建矩阵There is no specific data type in Python to create a matrix, we can use list of list to create a matrix. Python中没有特定的数据类型来创建矩阵&#xff0c;我们可以使用list列表来创建矩阵 。 Consider the below example, 考虑下面的示例&#xff0c;…

函数定义

//表达式定义函数 var squarefunction(x){return x*x;}//只有变量声明(var square;)提前了&#xff0c;初始化代码仍然在原处。 //函数声明语句 function f(x){return x*x;}//整个函数体被显式的“提前”到了脚本或函数的顶部。 //因此他们在整个脚本和函数内都是可见的。此种方…

leetcode 491. 递增子序列 思考分析

题目 给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c;递增子序列的长度至少是2。 说明: 给定数组的长度不会超过15。 数组中的整数范围是 [-100,100]。 给定数组中可能包含重复数字&#xff0c;相等的数字应该被视为递增的一种情况。 思考 这一题和le…

八、神经网络

一、为啥要有神经网络&#xff1f; 在前面的几篇博客中&#xff0c;很容易知道我们处理的都是线性的数据&#xff0c;例如&#xff1a;线性回归和逻辑回归&#xff0c;都是线性的算法 但是&#xff0c;实际上日常生活中所遇到的数据或者问题绝大多数还是非线性的 一般面对非线…

scale up 和 scale out

目前在调研sheepdog的时候&#xff0c;看到scale up和scale out的术语&#xff0c;理解了一下&#xff1a; 这两个词汇均是存储系统方面的概念 scale up: 纵向扩展 购买更大的存储&#xff0c;迁移原有数据到大的存储中 &#xff08;添加新一个新的机器&#xff09; scale out…

icse ccf_ICSE的完整形式是什么?

icse ccfICSE&#xff1a;印度中学教育证书 (ICSE: Indian Certificate of Secondary Education) ICSE is an abbreviation of the Indian Certificate of Secondary Education (ICSE). It is an educational board of the school in India for class 10th which is private an…

Delphi XE2 之 FireMonkey 入门(18) - TLang(多语言切换的实现)

一个小小的 TLang 类, 实现多语言切换, 挺好的. 它的工作思路是:1、首先通过 AddLang(语言代码) 添加语言类别, 如: AddLang(en)、AddLang(cn).2、每个语言代码对应一个 TStrings 列表, 获取方式如: LangStr[en]、LangStr[cn].3、可以手动填充这些数据、可以通过 LoadFromFile(…

leetcode 46. 全排列 思考分析

目录1、题目2、思考3、优化1、题目 给定一个 没有重复 数字的序列&#xff0c;返回其所有可能的全排列。 2、思考 老规矩&#xff0c;先画出给出的例子的解空间树&#xff1a; 观察我们可以发现&#xff1a; 1、深度向下一层深入时&#xff0c;出现过的元素不能再出现&…

Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所构成的室内安全报警模块

该系统模块主要由Arduino UNO R3开发板MQ-2烟雾浓度传感器火焰传感器舵机无源蜂鸣器风扇步进电机WIFI模块RGB三色LED灯SIM900A所组成&#xff0c;MQ-2烟雾浓度传感器达到不同的阈值的时候&#xff0c;LED灯会通过不同的颜色来进行警示。烟雾浓度增大&#xff0c;LED灯依次显示绿…

highcharts中series带参数的赋值问题

需要得到的代码如下&#xff1a; series: [{name: 棒号1,data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]}, {name: 棒号2,data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]}, {name: 棒号3,data: [-0.9, 0.6, 3.5, …

可编程ic卡 通用吗_8255可编程IC

可编程ic卡 通用吗Introduction 介绍 An 8255 programmable integrated circuit (IC) is an IC used for interfacing the microprocessor with the peripheral devices. It is a 40 pin IC which was introduced by INTEL to use with its 8085 and 8086 microprocessors. 82…

POJ 1944 Fiber Communications (枚举 + 并查集 OR 线段树)

题意 在一个有N&#xff08;1 ≤ N ≤ 1,000&#xff09;个点环形图上有P&#xff08;1 ≤ P ≤ 10,000&#xff09;对点需要连接。连接只能连接环上相邻的点。问至少需要连接几条边。 思路 突破点在于最后的结果一定不是一个环&#xff01;所以我们枚举断边&#xff0c;则对于…

九、逻辑回归多分类和softmax多分类

一、逻辑回归多分类 假设激活函数使用的是sigmoid函数 逻辑回归多分类其实是多个二分类而已&#xff0c;若求三分类问题需要对训练的数据样本进行适当的修改调整即可&#xff0c;如何修改样本数据可以参考逻辑回归二分类和多分类本质区别&#xff0c;内容都一样&#xff0c…