redis运维

redis运维

1.主从复制

互联网三高架构:高并发、高性能、高可用
单机redis的风险与问题?

  • 问题1.机器故障
    • 现象:硬盘故障、系统崩溃
    • 本质:数据丢失,很可能对业务造成灾难性打击
    • 结论:基本上会放弃使用redis.
  • 问题2.容量瓶颈
    • 现象:内存不足,从16G升级到64G,从64G升级到128G,无限升级内存
    • 本质:穷,硬件条件跟不上
    • 结论:放弃使用redis

为了避免单点Redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服
务器上,连接在一起,并保证数据是同步的。即使有其中一台服务器宕机,其他服务器依然可以继续
提供服务,实现Redis的高可用,同时实现数据冗余备份。

原理

主从复制即将master中的数据即时、有效的复制到slave中
特征:一个master可以拥有多个slave,一个slave只对应一个master
职责:

  • master:
    • 写数据
    • 执行写操作时,将出现变化的数据自动同步到slave
    • 读数据(可忽略)
  • slave:
    • 读数据
    • 写数据(禁止)
      在这里插入图片描述

作用

  • 读写分离:master写、slave读,提高服务器的读写负载能力。
  • 负载均衡:基于主从结构,配合读写分离,由slave分担master负载,并根据需求的变化,改变slave的数量,通过多个从节点分担数据读取负载,大大提高Redis服务器并发量与数据吞吐量。
  • 故障恢复:当master出现问题时,由slave提供服务,实现快速的故障恢复。
  • 数据冗余:实现数据热备份,是持久化之外的一种数据冗余方式。
  • 高可用基石:基于主从复制,构建哨兵模式与集群,实现Redis的高可用方案。

工作流程

  • 主从复制过程大体可以分为3个阶段
    • 建立连接阶段(即准备阶段)
    • 数据同步阶段
    • 命令传播阶段
      在这里插入图片描述
建立连接

在这里插入图片描述
建立slave到master的连接,使master能够识别slave,并保存slave端口号

主从连接(slave连接master)
方式一:客户端发送命令
slaveof <masterip> <masterport>
方式二:启动服务器参数
redis-server -slaveof <masterip> <masterport>
方式三:服务器配置,写道redis.conf配置文件中
slaveof <masterip> <masterport>


主从断开连接 slave发送
客户端发送命令
slaveof no one
slave断开连接后,不会删除已有数据,只是不再接受master发送的数据

授权访问
master客户端发送命令设置密码,也就是添加密码
在配置文件中设置
requirepass <password>
在当前环境变量中设置(会失效)
config set requirepass <password>
config get requirepass


进入slave需要认证的本机密码。
auth <password>
slave客户端发送命令设置密码
slave配置文件设置密码
写到环境变量中
config set masterauth 123.com
配置文件中设置master的密码
masterauth <password>
slave启动服务器设置密码
redis-server –a <password>


# 查询
info replication

建议使用配置文件进行配置
在slave的redis.conf中配置如下内容

slaveof master主机的redis的ip地址 端口号
masterauth master主机的redis的认证密码,如果有的话

在这里插入图片描述

在这里插入图片描述
slave断开连接后,不会清除数据,只是不能接收数据了

数据同步阶段工作流程
  • 在slave初次连接master后,复制master中的所有数据到slave
  • 将slave的数据库状态更新成master当前的数据库状态
    在这里插入图片描述
    在这里插入图片描述
repl-backlog-seize 1mb

在这里插入图片描述

slave-serve-stale-data yes|no
命令传播阶段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主从复制常见问题?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.哨兵(辅助主从复制)

哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。

在这里插入图片描述
哨兵的作用

  • 监控
    • 不断的检查master和slave是否正常运行。
    • master存活检测、master与slave运行情况检测
  • 通知(提醒)
    • 当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知。
  • 自动故障转移
    • 断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址.

哨兵也是一台redis服务器,只是不提供数据服务通常哨兵配置数量为单数
在这里插入图片描述

简介

启用

配置哨兵

  • 配置一拖二的主从结构
  • 配置三个哨兵(配置相同,端口不同)
  • 启动哨兵
redis-sentinel sentinel-端口号.conf

配置哨兵
在这里插入图片描述

原理

主从切换

  • 哨兵在进行主从切换过程中经历三个阶段- 监控
  • 通知
  • 故障转移
监控阶段

在这里插入图片描述

在这里插入图片描述

通知阶段

在这里插入图片描述

故障转移阶段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.集群

集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果。
用数量来客服硬件的问题。
集群作用

  • 分散单台服务器的访问压力,实现负载均衡
  • 分散单台服务器的存储压力,实现可扩展性
  • 降低单台服务器宕机带来的业务灾难

在这里插入图片描述

redis集群结构设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cluster集群结构搭建

在这里插入图片描述
Cluster配置

添加节点
cluster-enabled yes|no
cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容
cluster-config-file <filename>
节点服务响应超时时间,用于判定该节点是否下线或切换为从节点
cluster-node-timeout <milliseconds>
master连接的slave最小数量
cluster-migration-barrier <count>

Cluster节点操作命令

查看集群节点信息
cluster nodes
进入一个从节点 redis,切换其主节点
cluster replicate <master-id>
发现一个新节点,新增主节点
cluster meet ip:port
忽略一个没有solt的节点
cluster forget <id>
手动故障转移
cluster failover

redis-trib命令

添加节点
redis-trib.rb add-node
删除节点
redis-trib.rb del-node
重新分片
redis-trib.rb reshard
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值