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坏了还有个垫底的,有问题一起扛

相关推荐
岳麓丹枫0013 小时前
PostgreSQL 中 pg_wal 目录里的 .ready .done .history 文件的生命周期
数据库·postgresql
陌上丨9 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
AI_56789 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
ccecw9 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH307310 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
数据知道10 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
麦聪聊数据11 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
未来之窗软件服务11 小时前
数据库优化提速(四)新加坡房产系统开发数据库表结构—仙盟创梦IDE
数据库·数据库优化·计算机软考
时艰.12 小时前
Java 并发编程 — 并发容器 + CPU 缓存 + Disruptor
java·开发语言·缓存
Goat恶霸詹姆斯12 小时前
mysql常用语句
数据库·mysql·oracle