Redis持久化RDB和AOF
RDB
在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里,Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。
fork:Fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程
Rdb 保存的是dump.rdb文件
如何触发RDB快照
如何恢复
优势劣势
实验:
1,先将快照哪里修改为120,表示在两分钟之内如果进行10次写操作,会将写的内容保存到dump.rdb
修改
2.启动redis,
3.进行写操作
4,对dump.rdb进行备份,以防数据丢失(如删库,断电等)
5,对数据库进行破坏(删库,断电)
6,恢复数据(首先找到备份的rdb文件,然后删除本地的dump.rdb,在删除数据库以后断电了,redis迅速将数据写入rdb,但是已经删除了,所以写入的为空,读出来也为空)
7.恢复成功
总结
AOF
介绍:以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作
Aof保存的是appendonly.aof文件
配置位置:
启动/修复/恢复
异常修复appendaof.conf:
实验:
为了不让配置文件过于复杂,重新建一个redis.conf,名为redis_aof.conf
1,登陆
2.进行写操作,然后删库,断电
3,此时查看appendonly.aof文件,发现数据已经持久化到appendonly.aof里面
4,删除appendonly.aof里面的命令flushall,重启成功
Rewrite
优势和劣势
aof总结
总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端