手机里面的网站怎么制作,公司的网络规划与设计,装饰网站卧室做炕百度,公司门户网站建设策划书文章目录 1.什么是持久化#xff1f;2.RDB3.AOF 1.什么是持久化#xff1f;
Redis是跑在内存里的#xff0c;当程序重启或者服务器崩溃#xff0c;数据就会丢失#xff0c;如果业务场景希望重启之后数据还在#xff0c;就需要持久化#xff0c;即把数据保存到可永久保存… 文章目录 1.什么是持久化2.RDB3.AOF 1.什么是持久化
Redis是跑在内存里的当程序重启或者服务器崩溃数据就会丢失如果业务场景希望重启之后数据还在就需要持久化即把数据保存到可永久保存的存储设备中。
那要怎么存储呢
Redis提供了两种方式
RDBRedis Database Backup记录Redis某个时刻的全部数据这种方式本质就是数据快照直接保存二进制数据到磁盘后续通过加载RDB文件恢复数据。AOFAppend Only File记录执行的能造成数据变化的写命令重启之后通过重放命令来恢复数据AOF本质是记录操作日志后续通过日志重放恢复数据。
思考一下这几个问题 1、Redis为什么需要持久化 是为了在服务器重启或异常情况下能够保留并恢复数据。 ps那怎么保存呢 Redis提供了RDB快照方式保存二进制数据到磁盘以及AOF方式记录写命令用来后续重放写命令恢复数据。 ps它俩有什么区别呢 RDB是通过快照生成的是二进制文件AOF是记录写命令操作日志的文本文件。RDB的恢复数据的速度比AOF的快但是RDB容易丢失较多的数据而且RDB每次快照都是全量保存。 ps你会用哪个方式 如果业务场景能接受分钟级别的数据丢失我会选择RDB这也是推荐的一种方式。
2、同时开启AOF和RDB启动时加载那个
有AOF只会用AOF。
2.RDB
RDB本质是什么
是二进制形式的快照。 psRDB怎么触发 RDB可以通过配置定时触发触发时用的是后台持久化方式。也可以用save命令、bgsave命令主动触发save底层用的是阻塞式持久化bgsave用的后台持久化。如果Redis正常关闭会执行阻塞式持久化。 psRDB执行过程 首先Fork出一个子进程来做RDB持久化然后子进程写数据到临时的RDB文件最后用新RDB文件替换旧的RDB文件。
3.AOF
1、AOF重写解决什么问题
重写是用于解决AOF不断膨胀问题随着命令越来越多AOF文件越来越大但是很多数据不一定是由意义的。重写就是通过当前状态重新生成最新的AOF操作命令记录的过程。重写之后无效的命令会减少AOF重放时无意义的操作会减少耗时更短。
2、AOF重写流程 一次拷贝两处缓冲。主进程在 AOF 重写期间 fork 出子进程通过写时复制共享内存生成新的 AOF 文件同时主进程将新的写入命令分别写入 AOF 缓冲保证旧文件完整性和 AOF 重写缓冲同步子进程生成的新文件以确保数据不丢失。
混合持久化
混合持久化其实是在AOF重写阶段将当前状态保存为RDB二进制内容写入新的AOF文件再将重写缓冲区的内容追加到新的AOF文件最后代替原有的AOF文件。AOF文件就是二进制数据日志数据的混合体
混合持久化的出现与常规的AOF重写是一致的更好的解决了AOF文件太大的问题从文件恢复数据会快一点。
5.0之后只要开启AOF配置默认就是混合持久化。