您的位置:首页 > 数据库 > Redis

redis 持久化技术 之 aof

2017-04-20 21:07 295 查看
 

redis 的两种持久化数据方式 

一种是 rdb    --------------------  Redis DataBase    RDB

一种是 aof    --------------------   Append Only File   AOF

rdb的方式是备份数据库

aof的作法是,把每一条有关 redis 修改的命令给记录下来,数据恢复时把记录下来的命令跑一遍,就可以恢复(注意,这里是记录  redis 的修改命令 如 set  del 等,查询命令不会记录)

rdb的优点是体积小,方便,cpu占用小点 ,缺点是可能为丢失最后一次备份之后的数据        如果对数据完整性要求不是很高,可以采用 rdb模式

aof的优点是数据备份很精准,每一个改变的命令都会被记录,恢复时不会丢失数据

相关aof 模式在  redis.conf 中的配置如下:

appendonly no   //  这个选项是 选择是否开启 aof 持久化模式                      (注:rdb模式和aof 模式是可以共存的    当共存时  redis 自动恢复数据  以 aof 文件为准)

appendfilename "appendonly.aof"     // 这个选项是为aof 设置记录的文件名  可以自定义,一般不用更改

appendfsync everysec  // 这个选项有  三个可选值     分别 是         always  //表示redis 每执行一次改变数据的操
作,就记录一次,  这样作有点浪费 CPU资源

everysec // 这是一个默认的选项 ,表示每
一秒钟 触发一次 redis 的aof备份

 no      //这里是不触发的意思   (?那么就
只有手动的 用命令触发了吧)  

no-appendfsync-on-rewrite no  //这里是说是否开启 aof 备份的重写模式  因为 aof 是一个增量的备份,文件会越来
越大,   这个选项改为yes 后, redis会智能地判断 appendonly.aof  大到一定的
程度时,对其进得压缩,重新生成

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb     //这两项就是  触发 redis 压缩  .aof文件的条件,     redis每压缩一次,都会
对压缩后的 .aof  文件大小进行记录,  第一项的意思就是说,当                                                                               //现在文件的大小是记录文件大小的一倍时 ,也就是 100%时  ,触发一次  压缩
功能

//第二个选项的意思是,  当 .aof 文件达到 64M大小的时候,触发一次
压缩功能        这个值在上线的时候可以设置  成5000M

 ps:
当redis  发生断电,或宕机故障时,     appendonly.aof 的文件末尾可能为出现记录错误的数据  ,  导致重启 redis  时,  redis首先找到  appendonly.aof进行恢复, 而此时 这个文件的尾部可能是错的,  导致  redis  启到不起来, 恢复失败   ,   这时就要使用 这个命令了    redis-check-aof  ,这个命令可以清除 appendonly.aof 中出错的位置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: