redis--主从复制(读写分离)
应用程序对服务器大量的读写,服务器很可能会宕机,导致数据丢失。为了解决这一问题就有了主从复制。
作用:
1:防止数据丢失
2:提高系统的吞吐量
主从复制:从服务器复制主服务器中的数据。
读写分离:应用程序在主服务器写,在从服务器读。
配置:
1:手动
2:哨兵模式
手动:一主二仆(一种说法,可以有多个仆),星火相传(一个主服务器可以传到另一个服务器,另一个服务器可以传到别的服务器),反客为主(操作,从节点变为主节点)
我自己在根目录创建一个app文件夹,里面有redis,又新建了一个rediscluster文件,在rediscluster下创建了3个文件夹node1,node2,node3
①:准备多台服务器(用三个不同的redis服务进程模拟三个机器,指定不同的配置文件)
创建三个文件夹(node1,node2,node3),把redis.conf拷贝到三个文件夹下
②:修改各个文件夹下redis.conf文件
修改内容:
端口号(port)
守护进程(daemonize 改为yes,默认为no)
进程文件(pidfile) /app/rediscluster/node1/redis.pid
日志文件(logfile)/app/rediscluster/node1/redis.log
dir /app/rediscluster/node1/
这里启动多个redis命令:
cd /app/rediscluster
redis-server node1/redis.conf
启动redis-cli -h -p
-h 机器名(本地:127.0.0.1)
-p 端口号
redis-cli -p 7777(7777是我设置的redis端口号)
查看reids进程
ps -ef | grep redis
目前,这3个redis没有任何联系
配置主从(2种,配从不配主,从节点只能读,主节点能读能写):node1:端口号:6666 node2:端口号:7777 node3:端口号:8888
查看配置:info replication
方法一:用命令配置
在从节点上面执行 slaveof host port
方法二:修改配置文件
在redis.conf中,找到slaveof(默认是注释的,把注释删掉)
slaveof 127.0.0.1 port(父节点的端口号)
复制原理:
- Slave启动成功连接到master;
- slave向master会发送一个sync命令;
- Master接到命令后执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;
- 主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
- 从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;
- 主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;
- 从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;
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 ...
随机推荐
- HomePod即将发售,但硬件不再是苹果的救命稻草
流年不利的苹果,在多个维度都遭到了重创.除了与高通纠缠不清的专利官司外,iPhone销量还直线下滑并影响到营收.最终,苹果股价.市值都处于暴跌态势.面对内外夹击的不利局面,苹果信奉多年的"封 ...
- SpringBoot邮件推送功能
鞠躬,道歉 抱歉,迟到了近一年的更新,这一年挺忙的,发生了很多事情,就厚脸皮拖更了,抱歉. 现在状态回来了,打算分享下近期学到的东西,这一年期间学到的东西可能会随意更新,其实也就是玩了下C# + un ...
- gitbook简单教程
简介 GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书.GitBook支持输出以下几种文档格式 静态站点:GitBook ...
- git下载安装、配置及idea初始化
安装 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.19.0.tar.gz git 安装依赖 yum -y insta ...
- Java中JSON字符串与java对象的互换实例详解(转)
http://www.jb51.net/article/90914.htm 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要 ...
- php phar反序列化任意执行代码
2018年 原理一.关于流包装stream wrapper大多数的文件操作允许使用各种URL协议去访问文件路径,如data://,zlib://,php://例如常见的有include('php:// ...
- ASP.NETCore -----导入Excel文件
前端上传excel文件利用npoi读取数据转换成datatable(netcore坑爹啊,用的vs2017竟然不能可视化) 前端界面 @{ Layout = null; } <!DOCTYPE ...
- TFIDF介绍
简介 全称: Term Frequency-inverse document frequency(文本频率与逆文档频率指数) 目的: 表征一个token(可以是一个字或者一个词)的重要程度 是Elas ...
- Problem C Updating a Dictionary
Problem C Updating a Dictionary In this problem, a dictionary is collection of key-value pairs, ...
- NO7 利用三剑客awk-grep-sed-head-tail等7种方法实践
·seq sequence #序列·sed stream editor #(三剑客老二)流编辑器.实现对文件的增删改替换查. -n #取消默认输出.sed -n '20,30 ...