redis启用持久化

 redis的持久化有rdb和aof两种。
rdb是记录一段时间内的操作,一盘的配置是一段时间内操作超过多少次就持久化。
aof可以实现每次操作都持久化。
这里我们使用aof。

配置方式,打开redis的配置文件。找到appendonly。默认是appendonly no。改成appendonly yes。

再找到appendfsync
默认是:

    # appendfsync always   #每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用  
    appendfsync everysec     #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐  
    # appendfsync no    #完全依赖os,性能最好,持久化没保证  



默认每秒持久化满足我的需求。
其实改下appendonly 就ok了。

appendfsync no的时候,Redis不会主动调用fsync,将缓冲区中的数据写到磁盘上。
   appendfsync everysec
        当设置appendfsync为everysec的时候,Redis会默认每隔一秒进行一次fsync调用时长超过1秒时。Redis会采取延迟fsync,这一次的fsync时文件描述符会被阻塞,所以当前的写操作就会阻塞。
        结论就是,在绝大多数情况下,Redis会每隔一秒进行一 次fsync操作。这一操作在大多数数据库系统中被称为group commit,就是组合多次写操作的数据,一次性将日志写到磁盘。
   appendfsync always
        置appendfsync为always时,每一次写操作都会调用一次fsync,
所以其性能也会受到影响。
 

原文地址:https://www.cnblogs.com/mrhgw/p/Redis.html