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 ...
随机推荐
- Docker + Maven + Docker-compose
前言: docker:容器化管理 maven:支持docker-maven的插件,通过 mvn clean -Dmaven.test.skip package dockerfile:build 打包命 ...
- Swift 语法糖then
then是一个swift初始化库,只有80几行的代码库,确可以让初始化变得很优雅. 1.使用then初始化AnyObject,这里以初始化控件为例 lazy var label = UILabel() ...
- MySQL 批量更新、删除数据shell脚本
#!/bin/bash. ~/.bash_profilelog=/tmp/update_log_1_$(date +%F).logvstart=1step=100vstop=$((${vstart}+ ...
- ROS大型工程学习(四)一键安装所有缺失的依赖!!!
在正文之前,我必须向rosdep道个歉,前面那篇常用命令行中没有它的位置,现在单独写一篇补充!! 突然发现rosdep有个惊人的功能, rosdep install --from-paths src ...
- 01.swoole学习笔记--TCP服务器
1.安装swoole扩展 2.网络调试助手进行调试 <?php //创建服务器 $host='192.168.10.31'; $port=; //$model='SWOOLE_PROCESS'; ...
- canon 打印机 连接不上 netgear 路由器
解决方法很简单,只要把信道设置到 10以内即可.
- delphi日期GMT格式
function TForm1.DateTimeToGMT(const DateTime: TDateTime): string;const WEEK: array[1..7] of PChar = ...
- c++链表演示
#include<iostream> #include<string.h> #include<conio.h> using namespace std; #defi ...
- netty权威指南学习笔记八——编解码技术之JBoss Marshalling
JBoss Marshalling 是一个java序列化包,对JDK默认的序列化框架进行了优化,但又保持跟java.io.Serializable接口的兼容,同时增加了一些可调参数和附加特性,这些参数 ...
- node.js - 定义全局变量
1,定义全局变量 app.set('name','八戒') 2,获取全局变量 app.get('name')