设置appendonly=yes;
设置appendfsync,对于设置linux缓存oscache支持的选项 always,everysec,no;
设置auto-aof-rewrite-percentage 1-100 用来设置现在aof文件大小相比于上次rewrite时空间增加的比例 比如设置为100 则表示 在比上一次增大了一倍时再次rewrite
设置auto-aof-rewrite-min-size XXmb 最小rewrite空间大小,以mb为单位,必须超过该空间才有可能触发rewrite,每次都会进行比较;
AOF的 rewrite 过程描述:
文章插图
rewrite的实现图,在创建新aof文件时如果有新的client加入数据时的场景,新的数据会都保存在新旧aof文件中后再删除旧的aof文件;
文章插图
redis的数据受损修复功功能:
文章插图
2、企业级的数据备份方案
RDB非常适合做冷备,每次生成之后,就不会再有修改了 。
1、数据备份方案
(1)写linux的定时任务调度脚本,使用crontab定时调度脚本去做数据备份(2)每小时都copy一份rdb的备份,到一个目录中去,仅仅保留最近48小时的备份(3)每天都保留一份当日的rdb的备份,到一个目录中去,仅仅保留最近1个月的备份【相当于每个月保存30份备份】(4)每次copy备份的时候,都把太旧的备份给删了(5)每天晚上将当前服务器上所有的数据备份,发送一份到远程的云服务上去【云服务上以为单位】
2、数据恢复方案
(1)如果是redis进程挂掉,那么重启redis进程即可,直接基于AOF日志文件恢复数据
(2)如果是redis进程所在机器挂掉,那么重启机器后,尝试重启redis进程,尝试直接基于AOF日志文件进行数据恢复,AOF没有破损,也是可以直接基于AOF恢复的,AOF append-only,顺序写入,如果AOF文件破损,那么用 redis-check-aof fix【损坏部分容忍丢失,其实只丢失了一秒的数据量】
(3)如果redis当前最新的AOF和RDB文件出现了丢失/损坏,那么可以尝试基于该机器上当前的某个最新的RDB数据副本进行数据恢复
当前最新的AOF和RDB文件都出现了丢失/损坏到无法恢复,一般不是机器的故障,人为
/var/redis/6379下的文件给删除了,找到RDB最新的一份备份,小时级的备份可以了,小时级的肯定是最新的,copy到redis里面去,就可以恢复到某一个小时的数据
容灾演练
停止redis,关闭aof,拷贝rdb备份,重启redis,确认数据恢复,直接在命令行热修改redis配置,打开aof,这个redis就会将内存中的数据对应的日志,写入aof文件中,此时aof和rdb两份数据文件的数据就同步了 。
redis config set
热修改配置参数,可能配置文件中的实际的参数没有被持久化的修改,再次停止redis,手动修改配置文件,打开aof的命令,再次重启redis 。
(4)如果当前机器上的所有RDB文件全部损坏,那么从远程的云服务上拉取最新的RDB快照回来恢复数据 。
(5)如果是发现有重大的数据错误,比如某个小时上线的程序一下子将数据全部污染了,数据全错了,那么可以选择某个更早的时间点,对数据进行恢复
********** redis 三点式集群的搭建[重点] **********
单机的redis的一般场景下的极限值差不多读的QPS在5万左右,当然也收服务器的性能配置影响,所以高于这个极限值很大的境况下,redis随时有崩掉的危险,那么
怎么做到更高的QPS呢,总的思路就是读写分离,同时增加读的redis个数,因为在通常的场景下,读远远大于写;
这就引出了redis的主从结构话设计;
文章插图
主从结构框架配置 必须实现 master 的持久化!!!
文章插图
主从reids间的同步原理:
文章插图
redis的主从通信基本流程:
文章插图
runid的作用:
文章插图
redis replication复制原理总结:
1、复制的完整流程
(1)slave node启动,仅仅保存master node的信息,包括master node的host和ip,但是复制流程没开始
master host和ip是从哪儿来的,redis.conf里面的slaveof配置的
(2)slave node内部有个定时任务,每秒检查是否有新的master node要连接和复制,如果发现,就跟master node建立socket网络连接(3)slave node发送ping命令给master node(4)口令认证,如果master设置了requirepass,那么salve node必须发送masterauth的口令过去进行认证(5)master node第一次执行全量复制,将所有数据发给slave node(6)master node后续持续将写命令,异步复制给slave node
推荐阅读
- 私域流量的真相
- 百度seo流量浮动,网站到底该如何应对?
- 对DBA、开发、测试、产品同时友好 大规模多存储场景的数据库选型与服务平台建设
- 手淘推荐是什么流量入口 手淘推荐流量怎么获得
- RSS|在流量大厂的围攻下 有人希望20多岁老掉牙的技术复活
- 手淘推荐流量突然下降 手淘推荐是什么流量
- 全球最大CDN厂商Akamai:新冠疫情下互联网流量激增带来的安全新挑战
- 淘宝店铺没有自然流量进来怎么办 淘宝店流量一直起不来
- 交管12123怎么取消缴费?
- 淘宝新品上架多久会有自然流量 淘宝每天上新品可以提高流量吗