redis的高性能是由于将其所以数据都存储在内存中,为了使redis在重启之后扔能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。
redis支持两种方式的持久化,一种是RDB方法,一种是AOF方法。可以单独使用其实一种或者二者结合使用。
1.RDB持久化(默认支持,无需配置)
该机制是指在指定的时间间隔内将内存中的数据快照写入硬盘。
优点:相比AOF机制,如果数据集很大,RDB的启动效率会更高,性能会好一些。
缺点:因为RDB是每隔一段时间才创建快照存储磁盘的,这段时间内如果发生问题,比如服务器蹦了等,那么这段时间内的数据没有存储磁盘而丢失。
在redis.conf配置文件可以设置创建快照存储磁盘的时间:
save 900 1 每900秒(15分钟)至少有1个key发生变化
save 300 10 每300秒(5分钟)至少有10个key发生变化
save 60 10000 每60秒(1分钟)至少有10000个key发生变化
2.AOF持久化
该机制将已操作日志的方式,记录服务器所处理的每一个操作,在redis服务器启动时,读取日志文件来重新构建数据库,以保证数据库中的数据是完整的。
优点:该机制可以带来更高的数据安全性,其策略中,有每秒同步,每修改key就同步两种方式。
缺点:AOF文件通常要大于RDB文件,运行效率往往也会慢于RDB.
always 每次数据修改都会写入AOF文件
everysec 每秒写入一次
no 从不同步写入
在redis.conf配置文件可以设置: