redis持久化
来源:互联网 发布:lol外服盒子mac 编辑:程序博客网 时间:2024/05/16 12:16
redis持久化的两种方法(RDB、AOF)
1:RDB(Redis DataBase)
简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上
redis在进行数据持久化的过程中,会先将数据写入到一个临时文件中,待持久化过程都结束了,才会用这个临时文件替换上次持久化好的文件
2:AOF(Append Only File)
就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了
我们通过配置redis.conf中的appendonly yes就可以打开AOF功能默认的AOF持久化策略是每秒钟fsync一次(可以通过修改配置文件来修改AOF持久化时间)
在进行AOF重写时,仍然是采用先写临时文件,全部完成后再替换的流程。
3:两种方法优缺比较
在同样数据规模的情况下,AOF文件要比RDB文件的体积大
AOF方式的恢复速度也要慢于RDB方式。
4:AOF文件损坏修复
1).备份被写坏的AOF文件
2).运行redis-check-aof –fix进行修复
3).用diff -u来看下两个文件的差异,确认问题点
4).重启redis,加载修复后的AOF文件
5:RDB实现原理
就是在某个时间点把内存中所有数据保存到磁盘文件中,这个过程既可以通过人工输入命令执行,也可以让服务器周期性执行。对于“把内存中的数据转存到磁盘中”这一过程,其实现无非就是通过定义好某种存储协议,然后按照该协议写入或读出(save和bgsave)。
6:AOF持久化实现原理
在重写即将开始之际,redis会创建(fork)一个“重写子进程”,这个子进程会首先读取现有的AOF文件,并将其包含的指令进行分析压缩并写入到一个临时文件中。
与此同时,主工作进程会将新接收到的写指令一边累积到内存缓冲区中,一边继续写入到原有的AOF文件中,这样做是保证原有的AOF文件的可用性,避免在重写过程中出现意外。
当“重写子进程”完成重写工作后,它会给父进程发一个信号,父进程收到信号后就会将内存中缓存的写指令追加到新AOF文件中。
当追加结束后,redis就会用新AOF文件来代替旧AOF文件,之后再有新的写指令,就都会追加到新的AOF文件中了。
- 【redis】redis 持久化
- 【redis】redis持久化
- redis---Redis持久化
- 【Redis】Redis持久化存储
- 【Redis学习】:redis持久化
- 七.redis 持久化
- Redis:七、持久化
- redis 持久化
- 七.redis 持久化
- redis数据持久化
- Redis持久化
- 解密Redis持久化
- 七.redis 持久化
- Redis的持久化
- 解密Redis持久化
- 解密Redis持久化
- redis持久化机制
- redis 持久化
- 6月30日发布 柔光自拍vivo X7真机曝光 功能全解析
- 为何我们能和中国BAT公司一同受邀参加戛纳国际创意节
- 好久没在线了,恩进修(偷懒)中,hahaha~整理一下
- FAA还是不同意无人机送货,京东又能送多久
- TCP/IP
- redis持久化
- GC Algorithms: Implementations
- 转载教程
- 微信小程序 --- 文件解析错误 SyntaxError: Unexpected end of JSON input
- POI导出Excel时设置单元格类型为数值类型,消除左上小三角
- 日本人真会玩,用无人机撑伞
- Postgres限制每个用户只能连接指定数量的session,防止服务器资源紧张
- 【29日下午】全球人工智能与机器人峰会暨AI & ROBOT 系列创新沙龙
- AR现阶段只能炒概念?不如换个实用的思路吧