Redis持久化

没错,很老生畅谈的问题啦

reids快照

1、将内存数据库快照保存在名字为 dump.rdb 的二进制文件
2、设置配置文件save s num设置多少秒多少个
3、或命令 save (同步)/ bgsave :主fork子进程来共享内存数据生成dump新文件覆盖旧的

写时复制cow

1、fork子进程读取主进程内存数据,写入rdb文件

2、读不影响

3、写:被写的数据复制,bgsave小子将副本写入rdb文件(耗内存),主线修改原数据

4、机器挂了丢失没来及和快照 合二为一的数据(多可惜 没来得及加入快照这一温暖的大家庭)

aof

aof就比较细心了,本着可以百分百负责的态度将每一条指令记录到appendonly.aof文件中

1、先到os cache,隔一段时间fsync到磁盘(隔一段注意哦是隔一段 这世界哪有什么全心全意)

2、重启时将执行aof文件中指令来达到重建数据集伟大帝国的这一目的

3、可是aof里面命令太多怎么办呢(愁死👶了)欸咱们redis这么聪明,会定期根据内存最新数据生成aof文件,将重复的命令合并,自动的方式如下,手动那就是执行bgrewriteaof命令了,注意啦 重写时fork子去做(参考bgsave的),"脏活累活"怎么能主子去做呢?没有🐮🐎觉悟可不行!

复制代码
# appendonly yes开启
1 # auto‐aof‐rewrite‐min‐size 64mb //aof至少要达到64M才自动重写,太小恢复速度本来就
很快,意义不大
2 # auto‐aof‐rewrite‐percentage 100 //aof自上一次重写后文件大小增长了100%则再次触发重写

优先aof,因为他数据全,当然这世间没有完美的事情,执行起来就比较慢,"婆婆妈妈"的,当然不想被唠叨,那你就选redis4.0混合双打,不是redis4.0混合持久化!铛铛铛~

4.0混合

首先混合潜规则就有aof那就要开启aof啦,当然开启aof并不意味着开启了混合双打,所以需要#aof‐use‐rdb‐preamble yes开启!

1、aof重写时,重写这一刻之前的内存做rdb快照,并且一并和增量的aof修改内存数据的命令放在新的aof文件中

2、等重写完新的aof文件,才覆盖旧的aof,不能弄一半就着急"招摇过市" 万事求一个稳妥、靠谱

3、so 亲爱的redis在重启时,先加载rdb(他快)再重放增量的aof日志,日志这个词多好,不宣兵夺主,在甄嬛传中活到第三集妥妥的

持久化差不多说完了皮毛,大家看得也不容易,最后附赠一个

数据备份策略

首先不讲大前提都是刷流氓,咱们简简单单就reids ,别整那🈶️的没的中间价抬杠

1、写corn定时脚本,自己定多久copy rdb/aof到**中去,保留个48h到备份差不多(场景很重要,自己想 自己套)

2、每天呢保留当日的数据到****目录,这个保守写,可以多存些时日,就当过冬储粮(量)了

3、不过也别留太多,那没用的 太久的 该删就删 舍不得👶怎么套🐺,是不是

4、如果这数据还是担心丢,那就机器之前互备,大家伙互相照应些,老板多花点钱,让咱们工人们借助聪明才智将机器a的数据备份到机器人b,万一a坏了还有个垫底的,有问题一起扛

相关推荐
wfsm11 小时前
mysql事务
数据库·mysql
编程之升级打怪11 小时前
用Python语言实现简单的Redis缓冲数据库驱动库
redis·python
SadSunset11 小时前
第一章:Redis 入门介绍
数据库·redis·缓存
weixin_4643076311 小时前
QT智能指针
java·数据库·qt
王仲肖11 小时前
PostgreSQL VACUUM 与 AUTOVACUUM 深度解析
数据库·postgresql
电商API&Tina11 小时前
电商数据采集API接口||合规优先、稳定高效、数据精准
java·javascript·数据库·python·json
lifewange12 小时前
SQL 中 IN 和 AND 可以搭配使用么?
数据库·sql
博语小屋13 小时前
I/O 多路转接之epoll
运维·服务器·数据库
问道飞鱼13 小时前
【大模型学习】LangGraph 深度解析:定义、功能、原理与实践
数据库·学习·大模型·工作流
DJ斯特拉13 小时前
黑马点评技术汇总(四)缓存雪崩 && 缓存击穿
数据库·缓存