Redis主从复制简介

和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。

redis主从复制特性:

使用异步复制
一个主服务器可以有多个从服务器
从服务器也可以有自己的从服务器
复制不会阻塞主服务器
可以通过复制功能来让主服务器免于执行持久化操作,由从服务器去执行持久化操作即可
1、Redis主从部署

1.环境规划

所有机器统一centos7.4系统环境,安装redis 3.2.2,并且配置环境变量

主机名IP地址服务linux-node1172.16.1.170redis 主库linux-node2172.16.1.171redis 从库linux-node3172.16.1.173redis 从库

2.安装redis软件(所有节点统一安装)

1.确保系统已安装了Pcre(编译安装依赖于pcre组件)

[root@xmh ~]# yum install pcre -y

2.下载redis

mkdir /data
cd /data
wget http://download.redis.io/rele...

3.解压并编译redis

tar xf redis-3.2.2.tar.gz
mv redis-3.2.2 redis
cd redis
make

4.配置redis环境变量,使其能直接在命令使用redis命令

echo 'export PATH="/data/redis/src/:$PATH"' >>/etc/profile
source /etc/profile
编译安装完成后会在当前目录生成src这个目录(/data/redis/src),该目录存放的是redis的各种命令。
3.redis添加配置文件(所有redis节点统一的配置文件)

1.创建存放redis配置文件的目录,

mkdir /data/6379 -p

2.redis配置文件参数如下:

vim /data/6379/redis.conf

daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
dbfilename dump.rdb
protected-mode no
save 900 1
save 300 10
save 60 10000
参数解释:
daemonize yes #开启守护进程
port 6379 #redis端口号
logfile /data/6379/redis.log #redis日志文件保存路径
dir /data/6379 #redis数据文件保存路径
dbfilename dump.rdb #redis持久化RDB文件名(默认也是该文件名)
protected-mode no #关闭redis安全模式
save 900 1 #900秒后至少有1个key更改(save为RDB的持久化参数)
save 300 10 #300秒后至少有10个key更改
save 60 10000 #60秒后至少有10000个key更改
注意:持久化参数可有可无都不会影响本次实验,作者添加该参数的原因仅仅是为了配置文件参数的完整性
4.启动redis服务(所有redis节点统一执行)

redis-server /data/6379/redis.conf
ss -lntup |grep "6379"
5.开启主从(在从库上执行)

进入到redis cli模式,执行 SLAVEOF [主库IP] [主库端口]

redis-cli

127.0.0.1:6379> SLAVEOF 172.16.1.170 6379
6.从库上检查主从复制的状态(截取部分状态参数)

redis-cli

127.0.0.1:6379> info replication

Replication

role:slave #当前角色,从库
master_host:172.16.1.170 #主库的IP地址
master_port:6379 #主库的端口
master_link_status:up #主库状态up
7.主库上检查主从复制的状态(截取部分状态参数)

redis-cli

127.0.0.1:6379> info replication

Replication

role:master #当前角色,主库
connected_slaves:2 #有两个从库连接
slave0:ip=172.16.1.171,port=6379,state=online,offset=379,lag=0
slave1:ip=172.16.1.172,port=6379,state=online,offset=379,lag=1

默认情况下redis的从库没有写数据的权限

127.0.0.1:6379> set a 10
(error) READONLY You can't write against a read only slave.
2、Redis故障切换

手工的方式实现主从故障切换,当redis主库宕机后,需要选择一个从库作为临时顶替的主库,把SLAVEOF信息清除,然后其它从库也把SLAVEOF信息清楚,重新和新的主库构建主从关系

1.将主库的redis关闭(模拟主库故障)

[root@linux-node1 ~]# redis-cli shutdown
2.登录到任意一个从库查看主从状态(主库的状态是处于down)

[root@linux-node3 /]# redis-cli
127.0.0.1:6379> info replication

Replication

role:slave
master_host:172.16.1.170
master_port:6379
master_link_status:down #主库状态是down
3.让linux-node2成为主库(临时充当)

取消当前从库的角色,变成master节点

[root@linux-node2 /]# redis-cli
127.0.0.1:6379> SLAVEOF no one
4.手工将linux-node3和新的主库重新构建主从关系

1.先取消当前的从库角色,

[root@linux-node3 /]# redis-cli
127.0.0.1:6379> SLAVEOF no one

2.重新和新的主库构建主从关系

127.0.0.1:6379> SLAVEOF 172.16.1.170 6379

3.查看主从状态

127.0.0.1:6379> INFO replication

Replication

role:slave
master_host:172.16.1.171
master_port:6379
master_link_status:up #与主库连接的状态up

Linux Redis 高可用之主从复制相关推荐

  1. Redis高可用:主从复制及哨兵模式

    目录 主从复制 作用 复制原理 使用的方式 哨兵模式 主从切换过程 Redis Sentinel的配置文件 参考 主从复制 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器.前 ...

  2. Redis高可用之主从复制、哨兵、cluster集群

    一 Redis高可用 1.什么是高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%.99.99%.99.999%等等). 高可用的计算公 ...

  3. 2.redis高可用-持久化-主从复制-哨兵-cluster集群概述与部署,内容依旧多看完直接通透!

    文章目录 一,Redis 高可用 1.持久化 2.主从复制 3.哨兵 4.集群(cluster) 二,Redis 持久化方式 1.持久化的功能 2.持久化的方式 三, RDB 持久化 1.触发条件 2 ...

  4. Redis高可用之集群配置(六)

    0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...

  5. Redis进阶高可用之主从复制

    主从复制概述 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器.前者称为主节点(master),后者称为从节点(slave):数据的复制是单向的,只能由主节点到从节点. 主从复 ...

  6. 【Java从0到架构师】Redis 进阶 - 持久化(RBD、AOF)、高可用(主从复制、哨兵机制、Cluster)

    Redis 原理与实战 持久化 Redis 持久化 - RDB Redis 持久化 - AOF AOF 文件重写机制 Redis 高可用 Redis 主从复制 搭建主从复制环境 全量复制和部分复制 R ...

  7. redis 高可用(持久化、主从复制、哨兵、集群)以及集群的三种模式

    Redis高可用定义 在web服务器中,高可用代表服务器可以正常访问的时间,一般使用百分比来衡量多长时间内可以提供正常服务 但是在redis中,高可用的定义还要更广泛一点,除了提供正常的服务(如主从分 ...

  8. Redis高可用——主从复制、哨兵模式、集群

    文章目录 一.Redis高可用 1.什么是高可用 2.Redis的高可用技术 二.Redis主从复制 1.Redis主从复制的作用 2.主从复制的流程 三.主从复制的搭建 实验准备 1.所有主机安装R ...

  9. Keepalive+redis主从复制实现redis高可用

    Keepalive+redis主从复制实现redis高可用 一.背景描述 项目上使用的软件是使用的单机版本redis,客户质疑为什么现在还用单机呢?故障了怎么办,要求做高可用. redis有三种方式 ...

最新文章

  1. 文件系统性能测试指标
  2. 两队选手每队5人进行一对一的比赛(算法)
  3. 11旋转编码器原理图_plc编程入门:浅谈编码器的工作原理!
  4. H3C 交换机升级说明
  5. Stanford UFLDL教程 稀疏编码自编码表达
  6. Vue.js的基本使用 学习笔记
  7. 大数据资产管理在腾讯游戏的实践
  8. python list长度_python的入门阶段 编程思维100题 我跟罗志祥没关系
  9. LeetCode 861. 翻转矩阵后的得分(贪心)
  10. 【Elasticsearch】分片未分配 (UNASSIGNED) failed to obtain in-memory shard lock
  11. BI在企业数字化转型中的价值
  12. 文件查找命令 - find
  13. 柳传志的回复:联想集团大裁员:公司不是家
  14. 排序算法,对内存小数据量大的数据排序(一)
  15. [C#]WPF 3D 绘制一个正方体并调整视场角
  16. android power 按键,android 添加按(power键)电源键结束通话(挂断电话)
  17. HotKey学习总结
  18. iOS 视频边下边播
  19. 计算机d代表什么,DVI-D和DVI-I区别是什么?
  20. 微信小程序云开发之云数据库查询及动态输入

热门文章

  1. ZBar与ZXing使用后感觉
  2. C++ primer第五版随笔--2015年1月6日
  3. iOS学习之路十三(动态调整UITableViewCell的高度)
  4. MyBatis点滴积累
  5. 虚拟主机上用Asp.net实现Urlrewrite
  6. Asp.net中DataGrid控件的自定义分页
  7. 基于Hash的消息认证码HMAC简介及在OpenSSL中使用举例
  8. Linux Socket基础介绍
  9. 【SVN】svn“E155017工作副本的参考文件损坏、E200014文件校验和不匹配”的解决方法
  10. 【Qt】qss样式表之:QCalendarWidget,日历窗口样式表设置