redis(集群一)主从复制
1、主从复制原理
主从复制工作流程
- 从服务器连接主服务器,发送SYNC命令。
- 主服务器接收到SYNC命令后,开始执行bgsave命令生成RDB文件并使用缓冲区记录此后执行的所有命令
- 主服务器bgsave执行完成后,向所有服务器发送快照文件,并在发送期间继续记录被执行的写命令
- 从服务器接收到快照数据后丢弃所的有旧数据,载入收到以的快照
- 主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令
- 从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令(从服务器初始化完成)
- 主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令(从服务器初始化完成后的操作)
主从复制优缺点:
优点:
- 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离
- 为了负载master的读操作压力,slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由master来完成
- slave 同样可以接受其它slave的连接和同步请求,这样可以有效的分载master 的同步压力
- master是以非阻塞的方式为slave提供服务,所以master-slave同步期间,客户端仍然可以提交查询和修改请求。
- slave server同样是以非阻塞的方式未完成数据同步,在同步期间,如果有客服端提交查询请求,redis则返回同步之前的数据。
缺点:
- redis 不具备自动容错和恢复功能,主机和从机的宕机都会导致客户端部分读写请求的失败,需要等待机器重启或手动切换前端的IP才能恢复
- 主机宕机,宕机前有部分数据未能同步到从机,切换IP后还会引起数据不一致的问题降低了系统的可用性。
- redis较难支持在线扩容,在集群容量达到上限时在线扩容变得复杂。
2、主从搭建
主从复制的常用的几种方式
- 一主二仆 A(B、C) 一个Master两个Slave
- 薪火相传(去中心化)A - B - C ,B既是主节点(C的主节点),又是从节点(A的从节点)
- 反客为主(主节点down掉后,手动操作升级从节点为主节点)
1)一主二仆 A(B、C) 一个Master两个Slave
1、节点redis不需要修改配置
主节点服务器IP:192.168.244.128
2、改从节点配置
添加配置:slaveof 192.168.244.128 6379
从节点IP:192.168.244.130 192.168.244.131
3、分别重启主从服务器,验证
主服务器info replication:
显示有两个从节点,主节点set值 ,从节点可以get 得到
从服务器info replication:
2)薪火相传(去中心化)A - B – C
如上配置: 192.168.244.130 添加配置: slaveof 192.168.244.128 6379
192.168.244.131 添加配置: slaveof 192.168.244.130 6379
3)反客为主(一仆二主模式)
1、关闭主节点后从节点info replication:
此时从节点还是只读的
2、执行命令slaveof no one 升为主节点:
升为主节点后可读可写。
参照:https://www.cnblogs.com/51life/p/10233340.html
https://www.cnblogs.com/aflyun/p/8495561.html
redis(集群一)主从复制的更多相关文章
- 【Redis学习之八】Redis集群:主从复制
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 redis-2.8.18 Redis集群分类: 主从复制 R ...
- Redis 集群_主从复制_哨兵模型
1 redis集群简介 1.1 集群的概念 所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定.高效的状态. 1.1.1 使用redis集群的必要性 问题:我们已经部署好了 ...
- redis(4)--redis集群之主从复制
集群 先来简单了解下redis中提供的集群策略, 虽然redis有持久化功能能够保障redis服务器宕机也能恢复并且只有少量的数据损失,但是由于所有数据在一台服务器上,如果这台服务器出现硬盘故障,那就 ...
- Redis 集群的主从复制模型是怎样的?
为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,所 以集群使用了主从复制模型,每个节点都会有 N-1 个复制品.
- Redis集群搭建方案(Linux)
Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). list(链表).set(集合)和zset(有序 ...
- Redis集群教程(Redis cluster tutorial)
本博文翻译自Redis官网:http://redis.io/topics/cluster-tutorial 本文档以温和的方式介绍Redis集群,不使用复杂的方式来理解分布式系统的概念. ...
- Redis集群管理
1.简介 Redis在生产环境中一般是通过集群的方式进行运行,Redis集群包括主从复制集群和数据分片集群两种类型. *主从复制集群提供高可用性,而数据分片集群提供负载均衡. *数据分片集群中能实现主 ...
- Redis Cluster(Redis集群)的搭建和使用
Reids集群准备知识: (1)Redis集群介绍 Redis 集群是一个提供在多个Redis间节点间共享数据的程序集. Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据 ...
- 分布式缓存 Redis 集群搭建
Redis 集群简介 Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案.完全去中心化,由多个节点组成,所有节点彼此互联.Redis 客户端 ...
- redis集群配置及python操作
之前我们分析过喜马拉雅的爬取信息,使用分布式爬取,而且需要修改scrapy-redis的过滤算法为布隆过滤来减少redis内存占用,最后考虑这样还是不一定够,那么redis集群就是更好的一种选择方式了 ...
随机推荐
- FTP上传下载文件(函数简易版)
FTP上传下载文件(函数简易版) # 服务端 import socket import json import hashlib import struct import os user_dic = { ...
- 淘汰赛制_NOI导刊2010提高(01)
题目描述 淘汰赛制是一种极其残酷的比赛制度.2n名选手分别标号1,2,3,…,2^n-1,2^n,他们将要参加n轮的激烈角逐.每一轮中,将所有参加该轮的选手按标号从小到大排序后,第1位与第2位比赛,第 ...
- c#静态变量和非静态变量的区别
静态变量的类型说明符是static.静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成 ...
- 别再说你不会ElasticSearch调优了,都给你整理好了
ES 发布时带有的默认值,可为 ES 的开箱即用带来很好的体验.全文搜索.高亮.聚合.索引文档 等功能无需用户修改即可使用,当你更清楚的知道你想如何使用 ES 后,你可以作很多的优化以提高你的用例的性 ...
- js非布尔值的与(&&)与或(||)运算
/** * 非布尔值的与(&&)与或(||)运算 * 1.先将其转换成布尔值再做运算,并且返回原值 * 2.与(&&)运算: * a.如果第一个值为true,则返回第二 ...
- 如何通过命令行编写调试第一个C++程序(UNIX)
1.文件保存以.cc,.cpp等结尾: 2.bash窗口调试命令:cc prog1.cc,编译器生成可执行问价,Unix系统中为a.out,windows中一般以filename.exe; 3.(1) ...
- 解决"Microsoft Visual C++ 14.0 is required"的问题
1. 在 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 上面找到要安装的组件 2.下载相应的版本到本地 3. pip install **.whl
- java 延时
Java中主要有两种方法来实现延迟,即:Thread和Timer 1.普通延时用Thread.sleep(int)方法,这很简单.它将当前线程挂起指定的毫秒数.如try{Thread.currentT ...
- MySQL-几种关联
左表t1: DROP TABLE IF EXISTS t1; )); ,'t1a'); ,'t1b'); ,'t1c'); ,'t1d'); ,'t1f'); 右表 t2: DROP TABLE IF ...
- restful规范面试总结
1.url链接设计:采用https方式,有api关键字,有版本需要明确版本,请求链接用名词来表示资源,具体的操作方式采用请求方式来确定2.url响应数据设计:需要明确 状态码.错误信息.成功结果,子资 ...



