Redis的持久化功能:
redis为了内部数据的安全考虑,会把本身的数据以文件的形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)里边。
数据保存到硬盘的过程就被称为”持久化“效果。
持久化有2种方式:
1,snap shotting 快照持久化(默认方式)
该持久化默认开启,一次性把redis中全部的数据保存一份存储在硬盘中,如果数据量非常大(10-20G)就不适合频繁该持久化操作。
2,Append-only file(缩写aof)的方式
本质:把用户执行的每个 ”写“ 指令(增加、修改、删除)都备份到文件中,还原数据的时候就是执行具体写指令。
保存到了哪里?本地硬盘
在redis的运行目录下,默认的名字是dump.rdb,在redis.conf中可以修改这个备份文件的名字
多久持久化一次?
快照持久化的备份频率:在redis.conf下可以看到
这三个配置的含义是:数据修改的频率非常高,备份的频率也高,数据修改的频率低,备份的频率也低。如果你设置每60 1 (每分钟内有一个key改变)就备份一次,这样数据是最安全的,但是数据量大的话是很耗费服务器资源的,而且备份一次可能耗费很长时间。这就需要权衡数据安全性和效率之间的重要程度。
假设一个系统,假设数据量中等,每隔一个小时做一次快照持久化,10点-11点活跃用户比较多,被修改的key也比较多,有100万个key被修改,突然10:55断电了,数据只能恢复到到10点。可以做精细的持久化,就是aof。