配置Redis主从复制
[构建高性能数据库缓存之redis主从复制][http://database.51cto.com/art/201407/444555.htm]
一、什么是redis主从复制?
主从复制,当用户往Master端写入数据时,通过Redis Sync机制将数据文件发送至Slave,Slave也会执行相同的操作确保数据一致;且实现Redis的主从复制非常简单。
二、redis主从复制特点
1、同一个Master可以拥有多个Slaves。
2、Master下的Slave还可以接受同一架构中其它slave的链接与同步请求,实现数据的级联复制,即Master->Slave->Slave模式;
3、Master以非阻塞的方式同步数据至slave,这将意味着Master会继续处理一个或多个slave的读写请求;
4、Slave端同步数据也可以修改为非阻塞是的方式,当slave在执行新的同步时,它仍可以用旧的数据信息来提供查询;否则,当slave与master失去联系时,slave会返回一个错误给客户端;
5、主从复制具有可扩展性,即多个slave专门提供只读查询与数据的冗余,Master端专门提供写操作;
6、通过配置禁用Master数据持久化机制,将其数据持久化操作交给Slaves完成,避免在Master中要有独立的进程来完成此操作。
三、redis主从复制原理
当启动一个Slave进程后,它会向Master发送一个SYNC Command,请求同步连接。无论是第一次连接还是重新连接,Master都会启动一个后台进程,将数据快照保存到数据文件中,同时Master会记录所有修改数据的命令并缓存在数据文件中。后台进程完成缓存操作后,Master就发送数据文件给Slave,Slave端将数据文件保存到硬盘上,然后将其在加载到内存中,接着Master就会所有修改数据的操作,将其发送给Slave端。若Slave出现故障导致宕机,恢复正常后会自动重新连接,Master收到Slave的连接后,将其完整的数据文件发送给Slave,如果Mater同时收到多个Slave发来的同步请求,Master只会在后台启动一个进程保存数据文件,然后将其发送给所有的Slave,确保Slave正常。
四、服务器资源列表
五、配置过程
关于Redis的安装与配置这里便不操作,想了解的朋友请阅读:高性能数据库缓存之redis(一)http://cfwlxf.blog.51cto.com/3966339/1423106
3、1 Master端操作如下:
运行redis服务
- [root@redis_master sh]# redis-server/etc/redis/redis.conf
查询redis运行日志
##通过阅读日志文件输出的一些信息,可以看出Master与Slave建立连接时,需要执行的会话机制:加载数据文件至硬盘,用时0.012秒,可想而知速度是多么的快,当然得依据数据的大小去评测;服务连接至6379端口,收到Slave同步连接请求,开启“BGSAVE”同步等;
清除Master端数据库中所有Key
- [root@redis_master sh]# redis-cli
- 127.0.0.1:6379> FLUSHALL
- OK
- 127.0.0.1:6379> keys *
- (empty list or set)
3、2 Slave端操作如下:
[root@redis_slave ~]# vim/etc/redis/redis.conf
#添加Master端的IP与端口
- # slaveof <masterip><masterport>
- slaveof 192.168.8.8 6379
运行redis
- [root@redis_slave ~]# redis-server/etc/redis/redis.conf
查询Slave运行日志
##分析redis日志,可以看出Slave与Master建立连接,数据同步的过程;如:发送SYNC命令,与Master端192.168.8.8:6379建立连接,然后Slave sync started;随后Master发送PING命令检查Slave的存活状态,复制被继续….
查询数据库中的所有key
- [root@redis_slave ~]# redis-cli
- 127.0.0.1:6379> keys *
- (empty list or set)
3、3 slave2端操作如下:
[root@redis_slave2 ~]# vim/etc/redis/redis.conf
#添加Slave端的IP与端口,实现级联复制;
- # slaveof <masterip><masterport>
- slaveof 192.168.8.10 6379
#运行redis服务
- [root@redis_slave2 ~]# redis-server/etc/redis/redis.conf
查询redis运行日志
##结果与Slave1类似,只不过Slave2与Slave1(192.168.8.10:6379)建立连接,同步数据;MySQL的级联复制便是这样,Master->Slave1->Slave2;
#查询数据库的所有key
[root@redis_slave2 ~]# redis-cli
127.0.0.1:6379> keys *
(empty list or set)
3、4 master端操作如下:
- [root@redis_master sh]# redis-cli
- 127.0.0.1:6379> MSET ID 1005 NAMEMariaDB City BeiJing
- OK
- 127.0.0.1:6379> MGET ID NAME City
- 1) "1005"
- 2) "MariaDB"
- 3) "BeiJing"
- 127.0.0.1:6379> keys *
- 1) "NAME"
- 2) "ID"
- 3) "City"
3、5 客户端验证同步结果
slave1端验证
- [root@redis_slave ~]# redis-cli
- 127.0.0.1:6379> auth !@#aedf
- 127.0.0.1:6379> keys *
- 1) "City"
- 2) "NAME"
- 3) "ID"
- 127.0.0.1:6379> MGET ID NAME City
- 1) "1005"
- 2) "MariaDB"
- 3) "BeiJing"
slave2端验证
- [root@redis_slave2 ~]# redis-cli
- 127.0.0.1:6379> keys *
- 1) "ID"
- 2) "NAME"
- 3) "City"
- 127.0.0.1:6379> MGET ID NAME City
- 1) "1005"
- 2) "MariaDB"
- 3) "BeiJing"
四、Master write,Slave read机制
Redis的主从复制,通过程序实现数据的读写分离,让Master负责处理写请求,Slave负责处理读请求;通过扩展Slave处理更多的并发请求,减轻Master端的负载,如下图:
此图画得比较简易,展示了实现Redis读写分离的过程,通过判断用户读写请求,将write请求发送给Redis Master处理,Read请求发送给Redis Slave处理,文章中的不足之处,欢迎大家指点。
博文地址:http://cfwlxf.blog.51cto.com/3966339/1433637
【编辑推荐】
- Redis高级实用特性:安全性与主从复制
- Redis数据库高级实用特性:事务控制
- 一步完成MySQL向Redis迁移
- 深入理解Redis主键失效原理及实现机制
- 从应用角度谈新浪微博Redis服务平台
转载于:https://www.cnblogs.com/lsx1993/p/4614912.html
配置Redis主从复制相关推荐
- 【Redis】配置redis主从复制
阅读目录 简单介绍 章节1:下载安装 章节2:修改配置文件 章节3:开启主从redis服务 章节4:客户端连接-测试同步 章节5:应用场景 章节6:参考链接 简单介绍 redis的作用,可网上自行搜索 ...
- 手把手教你配置Redis主从复制(含详细图文)
前言 这期来聊聊什么是主从复制?主从复制能干什么?Redis如何实现的主从复制?哨兵模式如何实现?最后再来说说复制的原理以及他的缺点,如果还没安装Redis的同学可以先去看一下 <手把手教你在L ...
- Redis主从复制配置
环境描述 Redis Master:192.168.1.100 6379(Ubuntu系统) Redis Slave1:192.168.1.101 6380(Ubuntu系统) Redis Slave ...
- Redis主从复制哨兵模式自动切换
Redis主从复制 1.概念 主从复制,是指将一台Redis服务器的数据复制到其他的redis服务器上.前者为主节点master,后者为从节点slave,数据的复制是单向的,由主节点复制到从节点(主节 ...
- redis+主从复制+集群配置
redis+主从复制+集群配置 redis是一个key-value存储系统.和memcached类似,不过redis支持的value类型更多,主要有:string(字符串).list(链表).set( ...
- Redis主从复制配置(原理剖析)
文章目录 前言 一.Redis主从复制的作用 二.Redis主从复制环境配置 1.查看默认配置信息 2.配置一主二从的集群模式 2.1.拷贝配置文件 2.2.配置redis79.conf文件 2.3. ...
- Linux企业化运维--(7)redis服务之redis配置及主从复制、主从自动切换、集群、redis+mysql、gearman实现数据同步
Linux企业化运维 实验所用系统为Redhat-rhel7.6. 目录 Linux企业化运维 Linux企业化运维--(7)redis服务之redis配置及主从复制.主从自动切换.集群.redis+ ...
- Redis主从复制的配置并进行场景测试
Redis主从复制的配置并进行场景测试 为什么要使用主从复制? Redis虽然读写的速度相对于传统的关系型数据库较快,但是也会出现读取压力比较大的情况,为了避免出现这种情况的发生,以免给用户造成不好的 ...
- 阿里面试官:说说Redis主从复制原理
在Redis复制的基础上(不包括Redis Cluster.Redis Sentinel),使用和配置主从复制非常简单,能使得[从Redis服务器](后文称 slave)能精确得复制[主Redis服务 ...
最新文章
- 初入股市之 Hello Stock
- Dynamics 365-关于Solution的那些事(一)
- 怎么找回失踪的NTLDR文件
- python中的os模块
- 学习C ,常见的误解
- Win7 格式化U盘
- ThinkPHP---rbac权限管理
- Centos7使用yum安装Mysql5.7.19的详细步骤(可用)
- 不要轻率的问自己可以想明白可以确认的问题
- RemObjects Elements with water v10.0.0.2595 + CRACK
- 用python祝节日快乐_节日快乐祝福语有哪些?
- 《全网搜索》6.1版 - 更新内容及下载链接
- BTC EmbeddedPlatform安装手记
- 一个python+flask和SQLite的数字查找以及Dataload命令生成的小工具
- 【牛客网面经整理】20200831小米一面
- http://sebug.net/paper/databases/nosql/Nosql.html
- Java中常用的四种线程池
- html制作简易时钟
- 一个=电视+私人影院+KTV+游戏厅,爽!
- vue使用动态组件实现TAB切换效果
热门文章
- 2020idea插件怎么同步_没有用过这些插件,别说你在用vscode
- 计算机办公应用软件初级,电脑办公软件有哪些?桌面便签办公软件基础教程
- 华为鸿蒙系统使用视频,原生鸿蒙系统,华为WATCH 3上手视频曝光
- HTML+CSS+JS实现 ❤️年年有鱼祝福背景特效❤️
- android studio列模式,在Android studio 中使用单例模式
- @value 注入静态属性_TP6依赖注入是如何实现的
- 怎么分辨学校计算机sql版本,怎么筛选出每个年级每个学校有多少个班级
- linux 安装 交换分区大小,给已安装的Linux新增Swap交换分区
- php游戏怎么设置fms,[FMS]FMS使用需要注意的几种问题总结说明
- php+错误+处理,PHP 错误处理手记!!!!!