Redis主从复制(读写分离)
主从复制(读写分离):
读在从库读,写在主库写。
主从复制的好处:
避免redis单点故障
构建读写分离架构,满足读多写少的需求。
主从架构:

操作(启动实例,在一台机器上启动不同的实例,进行伪主从复制):
1.复制配置文件,修改配置文件,启动6379,6380,6381三个实例;

2.设置主从
在redis中设置主从有两种方式:
(1)在redis.conf中设置slaveof(永久)
(2)使用redis客户端连接到服务,执行salveod命令(临时)

3.查看主从信息,使用 INFO replication 命令。

4.测试
在主库写数据:

在从库读数据:

主从从架构:

操作与主从架构类似,不再写出。
从库只读:
默认情况下redis充当slave角色的只能读不能写。

可以在配置文件中开启非只读:slave-read-only no
主从复制的原理:
当从库与主库建立主从关系后,会像主库发送sync命令;
主库接收到sync命令后会在后台开始保存快照(rdb过程),并将期间接收到的写命令缓存起来;
当快照完成后,主redis会将快照文件和缓存的写命令一起发送给从redis;
从redis接收到后,会载入快照和执行收到的缓存的写命令;
之后,每当主redis接收到写命令后都会发送给从redis,从而保证数据的一致。
无磁盘复制:
如果主库所在的服务器的磁盘io能力较差的话,那么主从复制就会遇到瓶颈。的redis2.8.18版本后引入了无磁盘复制。
原理:
redis在与从库进行复制初始化的时候不再将快照保存在磁盘,而是通过网络直接发送给从库,从而避免了io性能差的问题。
开启无磁盘复制:repl-diskless-sync yes
主从架构出现宕机怎么办?
如果在主从复制架构中遇到宕机的话,一般要分情况:
1.从redis宕机
这种情况相对来说比较简单,只需将从redis重启,重启后从redis会自动加入到主从架构中,完成数据的同步。而且从redis2.8开始还实现了主从断线后恢复的情况下实现增量更新的功能。
2.主redis宕机
需要完成两步,第一步是在从redis中执行SLAVEOF NO ONE 命令,断开主从关系并且提升为主库继续提供服务;第二步是将主库重新启动,执行SLAVEOF命令,将其设置为其他库的从库,这时数据就会更新回来。这个过程一般使用哨兵来监听。
Redis主从复制(读写分离)的更多相关文章
- redis 主从复制+读写分离+哨兵
1.redis读写分离应用场景 当数据量变得庞大的时候,读写分离还是很有必要的.同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能.redis ...
- redis主从复制读写分离
主从复制,读写分离 Master/Slave 是什么 master写入 slave读取 能干嘛 读写分离,更加安全,性能提升 怎么玩 一主二仆.薪火相传.反客为主 周明老师,能够把长篇大论总结的很精辟 ...
- 基于Redis主从复制读写分离架构的Session共享
1.搭建主从复制 第一步:将Redis拷贝到虚拟机上的指定文件夹内,此Redis作为主服务 第二步:将Redis拷贝到本机的指定文件夹内,此Redis作为从服务 第三步:修改主服务的配置文件(redi ...
- 基于Redis主从复制读写分离架构的Session共享(Windows Server)
搭建主从复制 1.安装软件 下载Redis-x64-3.2.100.zip:https://github.com/MicrosoftArchive/redis/releases 第一步:将Redis拷 ...
- Redis 主从复制, 读写分离
1: 是什么? 2: 经常是配置从库, 不配置主库 3.1: 每次与 master 断开之后都要从连, 除非你配置了redis.conf 3.2: 获取当前redis 服务信息 => info ...
- Redis的读写分离
1.概述 随着企业业务的不断扩大,请求的并发量不断增长,Redis可能终会出现无法负载的情况,此时我们就需要想办法去提升Redis的负载能力. 读写分离(主从复制)是一个比较简单的扩展方案,使用多台机 ...
- redis sentinel 读写分离
redis sentinel 读写分离 https://www.jianshu.com/p/d1636776bb40
- mysql主从复制-读写分离
mysql主从复制+读写分离 环境:mysql主:193.168.1.1mysql从:193.168.1.2amoeba代理:193.168.1.3########################## ...
- Mysql多实例安装+主从复制+读写分离 -学习笔记
Mysql多实例安装+主从复制+读写分离 -学习笔记 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px ...
- windows下Redis 主从读写分离部署
原文:windows下Redis 主从读写分离部署 1.可直接下载window下的运行文件(下面这个链接) 也可以浏览github 查看相应的版本说明文档 https://github.com/Ser ...
随机推荐
- MYSQL_详细基本命令
修改新密码:use mysql:update user set password='新密码' where user='用户名':flush privileges: 更新权限 增加新用户:grant ...
- JVM详解之:汇编角度理解本地变量的生命周期
目录 简介 本地变量的生命周期 举例说明 优化的原因 总结 简介 java方法中定义的变量,它的生命周期是什么样的呢?是不是一定要等到方法结束,这个创建的对象才会被回收呢? 带着这个问题我们来看一下今 ...
- 企业权限管理(SSM整合)(总结)
学于黑马程序员和传智播客联合做的教学项目 感谢 黑马程序员官网 传智播客官网 个人根据教程的每天的工作进度的代码和资料 密码:cti5 b站在线视频 微信搜索"艺术行者",关注并回 ...
- PHP date_create() 函数
------------恢复内容开始------------ 实例 返回一个新的 DateTime 对象,然后格式化日期: <?php$date=date_create("2013-0 ...
- PHP getdate() 函数
------------恢复内容开始------------ 实例 返回当前本地的日期/时间的日期/时间信息: <?phpprint_r(getdate());?> 运行实例 » 定义和用 ...
- PHP strncmp() 函数
实例 比较两个字符串(区分大小写): <?php高佣联盟 www.cgewang.comecho strncmp("Hello world!","Hello ear ...
- Blob分析之ball_seq.hdev
* ball_seq.hdev: Inspection of Ball Bonding * 关闭更新dev_update_off ()*图像集合ImageNames := 'die/' + ['die ...
- luogu P5325 Min_25筛
LINK:Min_25筛 新版感觉有点鬼畜 而且旧版的也够用了至少. 这个并不算很简单也不算很困难的知识点 学起来还是很麻烦的. (误入了很多dalao的blog 说的云里雾里的 甚是懵逼 这里推荐几 ...
- 6.15 省选模拟赛 老魔杖 博弈论 SG函数
这道题确实没有一个很好的解决办法 唯一的正解可能就是打表找规律 或者 直接猜结论了吧. 尽管如此 在此也给最终结论一个完整的证明. 对于70分 容易发现状态数量不大 可以进行暴力dp求SG函数. 原本 ...
- 3月21日考试 题解(数据结构+区间DP+贪心)
前言:T3写挂了,有点难受. --------------- T1 中位数 题意简述:给你一段长度为$n$的序列,分别输出$[1,2k-1]$的中位数$(2k-1\leq n)$. --------- ...