Redis系列(三)持久化,主从复制,哨兵,集群

Redis有两种方式进行持久化

一、RDB方式持久化

这种方式保存的是数据。

执行方法:

  1. 手动:save(已废弃)/bgsave
  2. 自动:在配置文件中 save m n

配置文件常用参数

  • RDB文件保存路径:配置文件中的dir
  • RDB文件保存文件名:配置文件中dbfilename
  • RDB文件是否压缩:配置文件中rdbcompression

二、AOF方式持久化

这种方式保存的是写命令,更主流。

默认关闭,要开启,配置文件中:appendonly yes

AOF重写:将当前数据转化为写命令,与旧AOF文件无关

  • 手动重写:bgrewriteaof
  • 自动重写:配置文件中:
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

主从复制

哨兵和集群都是在复制基础上实现高可用的。主从复制完全在从节点发起,不需要我们在主节点做任何事情。

建立主从关系的途径:除配置文件外,还可以在从节点通过客户端执行命令:slaveof <masterip> <masterport>

从节点配置文件中的masterauth用于验证主节点密码,初学练习先去掉密码。

主从复制包括了连接建立阶段、数据同步阶段、命令传播阶段。

  • 其中数据同步阶段,有全量复制和部分复制两种数据同步方式;命令传播阶段,主从节点之间有PING和REPLCONF ACK命令互相进行心跳检测。

  • 当主从offset差距过大,超过复制积压缓冲区,只能进行全量复制。更改复制积压缓冲区大小,配置repl-backlog-size

哨兵

哨兵的核心功能是主节点的自动故障转移

架构:

image.png

  • 不同的哨兵节点应部署在不同的物理机上
  • 学习演示时,关掉redis密码
  • 强制故障转移:sentinel failover mymaster该命令可以强制对mymaster执行故障转移,即便当前的主节点运行完好;例如,如果当前主节点所在机器即将报废,便可以提前通过failover命令进行故障转移。
  • 主观下线:哨兵自己认为下线;客观下线:哨兵咨询其他哨兵,认为下线达到一定数量,则为客观下线。客观下线真针对主节点有效。

集群

  • 集群是多个节点的master数据共享,可以横向分担单个节点的master写入压力。

  • 集群由多个哨兵模式组成。但实际部署时,并没有配置哨兵,也能实现故障的自动转移。原理是各个master代理了sentinel的工作,由master选举下线的master中的一个slave变成新的master继续工作。

  • 建议不管项目大小,部署的时候都做集群,做好充分拓展准备。

  • Redis 5.0版本之后取消了Ruby脚本,集成到了redis-cli里,5.0之后搭建过程。注意构建集群用公网IP,阿里云的+10000的端口也要打开。要配置密码,不然会被攻击,键变成backup1, backup2。

    主从都要设置requirepass,从要设置masterauth。构建集群时加上-a参数指定密码。

    用阿里云搭建,外网访问不到公网IP解决方法:编辑nodes-端口.conf文件,将内网ip替换成公网ip

  • 带Ruby脚本的5.0之前搭建过程

  • 撤销集群:shutdown节点,删除集群配置文件和数据文件,只保留redis-端口.conf文件。

  • 删除节点:从节点可以直接删,主节点需要把槽都清空,再删。

    示例:

    redis-cli --cluster del-node 127.0.0.1:6381 26976c7da741133edf0648da207ce40336bcbcba,

    127.0.0.1:6379> cluster flushslots

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肯特技术宅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值