redis官方持久化文档镇楼
Redis官方提供了两种持久化的方案:RDB和AOF。
对于RDB官方的定义是:The RDB persistence performs point-in-time snapshots of your dataset at specified intervals。翻译成中文的话就是:按规定的时间间隔执行数据集的时间点快照。简单的理解就是RDB会按一定的时间间隔去备份当前Redis内的数据。
简单的来说RDB持久化的方式一般适用于冷备。
AOF (Append Only File): The AOF persistence logs every write operation received by the server, that will be played again at server startup, reconstructing the original dataset. Commands are logged using the same format as the Redis protocol itself, in an append-only fashion. Redis is able to rewrite the log in the background when it gets too big.(AOF会记录服务器接收的每个写入操作,这些操作将在服务器重启时执行,以恢复数据集。写入操作的命令使用与Redis协议本身相同的格式记录命令,并且方式是仅追加。当日志太大时,Redis可以在后台重写日志。)
翻译过来就是 : AOF会将每条写入命令作为日志,以 append-only 的模式写入一个日志文件中,因为这个模式是只追加的方式,所以没有任何磁盘寻址的开销,所以很快。
其实这个有点类似于MySQL的bin log。
一般建议是同时使用两种灾备方案。而且Redis官方正在将RDB和AOF统一为一个持久化模型。
当然,如果只关心数据且可以承受几分钟的数据丢失情况的话,可以仅使用RDB。
修改Redis的配置文件,在内部加上以下内容,或者可以手动调用SAVE或BGSAVE命令
# 时间策略 save 900 1 save 300 10 save 60 10000 # 文件名称 dbfilename dump.rdb # 文件保存路径 dir /home/work/app/redis/data/ # 如果持久化出错,主进程是否停止写入 stop-writes-on-bgsave-error yes # 是否压缩 rdbcompression yes # 导入时是否检查 rdbchecksum yes
appendonly yes (默认no,关闭)表示是否开启AOF持久化: appendfilename “appendonly.aof” AOF持久化配置文件的名称: AOF持久化策略(默认每秒): appendfsync always (同步持久化,每次发生数据变更会被立即记录到磁盘,性能差但数据完整性比较好) appendfsync everysec (异步操作,每秒记录,如果一秒钟内宕机,有数据丢失) appendfsync no (将缓存回写的策略交给系统,linux 默认是30秒将缓冲区的数据回写硬盘的)