首页 > 其他 > 详细

Redis之持久化

时间:2019-09-03 22:49:03      阅读:92      评论:0      收藏:0      [点我收藏+]

Redis持久化

大白话定义

  时间间隔内将内存中的数据写入磁盘

Snapshot快照

  它恢复时候是将快照文件直接读到内存中

fork

  简单的说就是备份(复制一个与当前进程一样的进程)Redis本身是单进程单线程底层用的epoll模型,所以快

两种模式

RDB Redis DataBase

优势:

  适合大规模的数据恢复

  对数据完整性和一致性要求不高

缺点:

  最后一次持久化后的数据可能会丢失

  还有就是fork备份一份,要考虑内存空间

RDB保存文件是保存在dump.rdb文件中 这些都可以在配置文件修改但是业界都是用的这个文件名字

动态停止RDB:  

1 redis-cli config set save ""  当然最好还是备份一份

需求:比如现在设置的是2分钟修改10次就触发RDB模式但是我又不想等它两分钟,写了马上存的话

1 save 只管保存 全部阻塞
2 bgsave 后台异步进行快照保存

如果在此时执行flushall命令,dump.rdb文件为空,无意义

恢复数据:

  把dump.rdb移动到redis安装目录并启动就能恢复(最好不要在宿主机上操作这些,在备份机上搞这些操作)

异常修复启动

redis-check-dump --fix dump.rdb

出厂默认设置  

  1分钟内改了1万次
  5分钟改了10次
  15分钟内改了1次

AOF Append Only File

机制

  以日志的形式来记录每个写操作,写操作指令全部记录下来

  如果AOF与RDB共存的时候优先读取appendonly.aof,如果appendonly.aof有错误的写命令被保存进去,redis再从新启动就启动不了,但是可以通过redis-check-aof --fix appendonly.aof命令启动 自动就会把里边的错误命令删除再启动

Rewirte

  文件追加方式,文件会越来越大,为了避免这种情况,新增重写机制

重写原理

  简单的说又要fork

触发重写机制

  默认是aof文件大小是上次rewirte后大小的一倍且文件大于64M时候就触发

优势:

  每秒同步 每秒修改不同步

劣势:

  aof文件大小远大于rdb,恢复没得rdb快

  运行效率慢与rdb,大量的io操作,占内存,逐条文件中执行命令

常用的两个命令进程信息:

  lsof -i :6379
  ps -ef|grep redis

 

Redis之持久化

原文:https://www.cnblogs.com/Alexephor/p/11456042.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!