redis主从配置(一主多从)
主从简介
redis安装
1、主从 – 用法
像MySQL一样,redis是支持主从同步的,而且也支持一主多从以及多级从结构。
主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来承担。
redis的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低redis的处理性能。
主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能。
2、主从同步原理
主从 – 同步原理
从服务器会向主服务器发出SYNC指令,当主服务器接到此命令后,就会调用BGSAVE指令来创建一个子进程专门进行数据持久化工作,也就是将主服务器的数据写入RDB文件中。在数据持久化期间,主服务器将执行的写指令都缓存在内存中。
在BGSAVE指令执行完成后,主服务器会将持久化好的RDB文件发送给从服务器,从服务器接到此文件后会将其存储到磁盘上,然后再将其读取到内存中。这个动作完成后,主服务器会将这段时间缓存的写指令再以redis协议的格式发送给从服务器。另外,要说的一点是,即使有多个从服务器同时发来SYNC指令,主服务器也只会执行一次BGSAVE,然后把持久化好的RDB文件发给多个从服务器。而在2.8版本之后,redis支持了效率更高的增量同步策略,这大大降低了连接断开的恢复成本。主服务器会在内存中维护一个缓冲区,缓冲区中存储着将要发给从服务器的内容。从服务器在与主服务器出现网络瞬断之后,从服务器会尝试再次与主服务器连接,一旦连接成功,主服务器就会向从服务器发送增量内容。增量同步功能,需要服务器端支持全新的PSYNC指令。这个指令,只有在redis-2.8之后才具有。
BGSAVE指令:
在后台异步(Asynchronously)保存当前数据库的数据到磁盘。
BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
3、部署三台机器redis—主从同步
redis-master----192.168.246.202
redis-slave-1-----192.168.246.203
redis-slave-2-----192.168.246.204
1.首先三台服务器将redis部署完成。
2.编辑master的redis配置文件:
[root@redis-master ~]# cd /data/application/redis/
[root@redis-master redis]# vim redis.conf
关闭protected-mode模式,此时外部网络可以直接访问
开启protected-mode保护模式,需配置bind ip或者设置访问密码
3.启动主节点redis服务
[root@redis-master src]# cd /data/application/redis/src
[root@redis-master src]# ./redis-server ../redis.conf & 会加载此文件中的配置信息
4.修改slave1的配置文件:
[root@redis-slave-1 ~]# cd /data/application/redis/
[root@redis-slave-1 redis]# vim redis.conf ---修改如下:
5.启动从节点1的redis服务
[root@redis-slave-1 ~]# cd /data/application/redis/src/
[root@redis-slave-1 src]# ./redis-server ../redis.conf &
6.修改slave2的配置文件
[root@redis-slave-2 ~]# cd /data/application/redis/
[root@redis-slave-2 redis]# vim redis.conf ---修改和从节点1 一样
7.启动从节点2的redis服务
[root@ansible-web2 ~]# cd /data/application/redis/src/
[root@ansible-web2 src]# ./redis-server ../redis.conf &
9.测试主从
1.在master上面执行
[root@redis-master redis]# cd src/
[root@redis-master src]# ./redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set name jack
OK
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379>2.分别在slave-1和slave-2上面执行:
[root@redis-slave-1 redis]# cd src/
[root@redis-slave-1 src]# ./redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379>
[root@redis-slave-2 src]# ./redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379>
查看复制状态
master执行:
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.246.203,port=6379,state=online,offset=490,lag=0
slave1:ip=192.168.246.204,port=6379,state=online,offset=490,lag=1
==============================================================================
slave上面执行:
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.246.202
master_port:6379
master_link_status:up
注意:从服务器一般默认禁止写入操作:slave-read-only yes
redis主从配置(一主多从)相关推荐
- Redis主从配置(一主两从)
Redis主从配置(一主两从) 1.进入redis目录,打开redis的配置文件redis.conf. 2.修改redis配置文件: Vi redis.conf 在两台从服务器的尾部 添加 slave ...
- redis 主从配置(1主2从加哨兵)
两个提供参考 https://www.cnblogs.com/gossip/p/5992716.html https://www.cnblogs.com/dupang/p/6414365.html 一 ...
- redis主从配置完毕为啥在主服务器中检测不到从服务器
23,redis如何实现主从复制 redis主从复制 和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Re ...
- Redis主从配置及通过Keepalived实现Redis自动切换高可用
Redis主从配置及通过Keepalived实现Redis自动切换高可用 [日期:2014-07-23] 来源:Linux社区 作者:fuquanjun [字体:大 中 小] 一:环境介绍: Mas ...
- php redis 主从配置,Redis主从及其PHP扩展安装配置
1.Redis简介Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序 ...
- Redis主从配置和集群配置
Redis主从配置和集群配置 文章目录 Redis主从配置和集群配置 一.Redis主从配置 1.主从概念 2.主从配置 3.数据操作 二.Redis集群配置 1.简介 2.Redis 集群好处 3. ...
- linux redis 主从配置,redis集群(主从配置)
redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). list(链表).set(集合)和zset(有序集合).这些数据 ...
- Redis 主从配置密码以及哨兵
目录: Redis 主从介绍 哨兵机制 Redis 主从配置 环境 安装 启动服务 检查主从状态 测试数据同步 默认是读写分离的 Redis Sentinel 配置 主Redis宕机测试 配置多个哨兵 ...
- redis主从配置和redis哨兵配置
主从配置 redis 主从配置master slave 优点: 防止单点故障(除了单机版,都可以) 读写分离,更好的实现多读写少 克隆两台redis虚拟机作为从机 复制操作文件 cp /usr/red ...
- Linux学习——redis主从配置(带密码)
redis一主二从配置(带密码) 找了很多redis主从配置教程发现大多数都是没密码的配置,而正式服务器中,为了安全redis通常都会设置密码,正好学到这,下面分享我自己学习中对于redis主从配置的 ...
最新文章
- Eclipse项目部署到Tomcat中路径
- JQueryEasyUI validatebox 扩展其自带验证方法
- poj2632 累死了
- c语言printf里的自增,笔试题记录:C语言——函数printf()的执行机制;先自增与后自增的区别;取值运算与自增运算的优先级...
- 计算机不能启动 无法验证数字签名,win10改win7系统启动后提示:无法验证此文件的数字签名怎么办?...
- dubbo学习之事件通知实践
- PyQt5学习--基本窗口控件--QButton类控件
- border_mode
- 【大数据】0002---MongoDB集群自动分离创建新集群
- android qq三方登录授权失败,qq第三方登陆授权失败110401错误码解决办法介绍
- 基于cat12和SPM12进行大脑VBM数据分析笔记2——统计分析
- 人工智能如何自我进化
- 关于 C/S模式,B/S模式,P2P模式
- Android EditText与软键盘
- mac关闭当前窗口快捷键,mac关闭当前应用快捷键
- 淘宝技术发展(Oracle/支付宝/旺旺)
- 这种公司再也呆不下去了!我要跳槽!
- 手机浏览器查看网页源码
- html做旋转的五角星,Flash AS3代码制作旋转彩色五角星动画
- GitHub的Linux配置与常用操作