Redis持久化

152 阅读1分钟

1.rdb

rdb(redis database)简而言之就是根据触发规则,forks出一个子进程去存储数据,类似于vm的拍快照记录当前redis的数据量 优点的话就是占用资源少,io开销相对较小,缺点的话就是在极端环境下你会丢失几分钟的数据。

触发规则

  • save的规则满足的情况下,会自动触发rdb规则
  • 执行flushall命令,也会触发我们的rdb规则
  • 退出redis,也会产生rdb文件!

1.备份就自动产生一个dump.rdb文件,只需要将rdb文件放在我们的redis-server的启动目录,redis启动的时候就会自动检查 dump.rdb恢复其中的数据!

2.查看需要存在位置

 config get dir
1) "dir"
2) "/usr/local/bin"
几乎就他自己默认配置就够用了,但是我们还是要去学习

优点:

1.蛇和大规模的数据恢复

2.对数据的完整性不高!

缺点:

1.需要一定的时间间隔!如果redis意外宕机啦,这个最后一次修改的数据就没啦

2.fork进程的时候,会占用一定的内容空间!

2.aof

Append-only file,就是将我们所有的命令都记录下来,每一步操作都记录下来,而且根据配置的每秒 fsync 一次 策略最坏的情况就是只丢失1秒的数据,优点说完了,就说缺点,每次操作记录带来的io开销太大啦,而且也会吃不少资源,虽然Redis 2.4 则可以自动触发 AOF 重写,但是在性能上这还是比rdb差些。