redis rdb数据持久化
面试和工作,持久人都是重点!
Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失.所以Redis提供了持久化功能!
RDB(Redis DataBase)
什么是RDB
在生产环境,我们根据需要,对这个dump.rdb文件进行备份
9: 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
save
Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
触发机制
1.save的规则满足的情况下,会自动触发rdb的规则,保存dump.rdb文件!
2.执行flushall命令,也会触发我们的rdb规则,保存dump.rdb文件!
3.退出redis时,也会自动保存保存dump.rdb文件.
如何恢复rdb文件!
1.只需要将rdb文件放到我们redis启动目录就可以,redis启动的时候会自动检查dump.rdb恢复其中的数据!
2.查看需要存在的位置.
127.0.0.1:6379> config get dir
1) "dir"
2) "/data" # 如果在这个目录下存在dump.rdb文件,启动时就会自动恢复其中的数据
几乎就他自己默认的配置就已经够用了,但是我们还是需要去学习!
优点:
1.适合大规模的数据恢复!
2.对数据完整性要求不高!
缺点:
1.需要一定的时间间隔进程操作!如果redis意外宕机,这最后一次修改的数据就没有了!
2.fork进程的时候,会占用一定的内容空间!
[Haima的博客]
http://www.cnblogs.com/haima/