首页 > 数据库 > NoSQL > redis续14-持久化
我们经常拿redis和memcached进行比较,他们主要区别之一就是持久化。
redis 是一个支持持久化的内存数据库,redis会把内存中的数据同步到磁盘来保证持久化;而memcached是不支持持久化的内存数据库,如果宕机了,数据就没有了……
redis提供持久化机制:
1,RDB持久化
在指定的时间间隔内将内存中的数据集快照写入磁盘
Snapshotting方式
缺省情况下,Redis会将数据集的快照dump到dump.rdb文件中。我们也可以修改Redis服务器dump快照的频率,vi redis.conf文件:
save 900 1 #在900秒之后,如果至少有1个key发生变化,则dump内存快照
save 300 10 #在300秒之后,如果至少有10个key发生变化,则dump内存快照
save 60 10000 #在60秒之后,如果至少有10000个key发生变化,则dump内存快照
Dump快照方式
Redis先fork子进程,子进程将快照数据写入到临时RDB文件中,当子进程完成数据写入操作后,再用临时文件替换老的文件。
2,AOF持久化
以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。
Redis服务器缺省是RDB,如果要用AOF,vi redis.conf:
将appendonly no改为yes ,然后重启redis使之生效
AOF同步方式有3种:
appendfsync always #每次有数据修改发生时都会写入AOF文件。
appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。
appendfsync no #从不同步。高效但是数据不会被持久化。
3,同时启用RDB和AOF
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29806344/viewspace-1427100/ ,如需转载,请注明出处,否则将追究法律责任。