五. Redis持久化

Redis是一个支持可持久化的内存数据库,也就是说Redis能够将数据保存到硬盘当中。redis

目前Redis支持两种持久化方式:数据库

1. snapshotting 快照方式(默认方式)。缓存

2. append-only  file (缩写AOF)的方式。app

 

区别:快照方式是将数据存到文件里面,AOF是将 INSERT,UPDATE,DELETE操做存到文件里面。函数

 

快照持久化性能

快照持久化是redis默认的持久化方式。这种方式是将内存中数据以快照的方式写入二进制文件中,默认的文件名为dump.rdb。redis提供了快照持久化的设置方式。spa

打开 redis.conf 文件:内存

save 900 1    表示900秒内若是超过1个key被修改,则发起快照保存it

save 300 10  表示300秒内若是超过10个key被修改,则发起快照保存配置

save 60 10000   表示60秒内若是超过10000 个key被修改,则发起快照保存

弊端: 快照方式是在必定间隔时间作一次,因此若是Redis意外挂掉的话,就会丢失最后一次快照后的全部修改。

 

AOF持久化

AOF比快照方式有更好的持久化性,是因为在使用AOF时,redis会将每个收到写命令都经过write函数追加到文件中,当redis重启时会经过从新执行文件中保存的写命令来重建整个数据库内容。

固然因为os会在内核中缓存write作的修改,因此可能不是当即写到磁盘上。这样aof方式的持久化仍然仍是可能会丢失部分修改。

咱们能够经过配置文件告诉redis咱们想要经过fsync函数强制os写入到硬盘的时机。

步骤:

1. 修改 redis.conf 文件中 appendonly 项,设置为 appendonly no

2. 配置 appendfsync 项(三选一)

  appendfsync always  (收到命令就当即写入磁盘,最慢,可是保证最彻底的持久化)  appendfsync everysec  (每秒钟写入磁盘一次,在性能和持久化方面作了最好的折中)  appendfsync no      (彻底依赖os,性能最好,持久化方面没保证)

相关文章
相关标签/搜索