设为首页 收藏本站
查看: 1123|回复: 0

[经验分享] Redis AOF 全持久化

[复制链接]

尚未签到

发表于 2015-12-23 09:33:26 | 显示全部楼层 |阅读模式
Redis AOF 持久化,将每次接收到更改 redis 数据的操作都记录到一个 aof 文件,当服务器意外宕机或 redis 服务器非法关闭时,不会丢失数据。可以做到数据安全化,但是性能会受到影响。
1、修改 redis.conf



  • [root@study ~]# vim /usr/local/redis/redis.conf

  • daemonize yes
  • port 6379
  • timeout 300
  • loglevel debug
  • pidfile /usr/local/redis/logs/redis.pid
  • logfile /usr/local/redis/logs/redis.log

  • databases 16

  • #save 900 1
  • #save 300 10
  • #save 60 10000
  • #rdbcompression yes
  • #dbfilename dump.rdb

  • ## 关闭 RDB 持久化

  • dir /usr/local/redis/data/

  • appendonly yes
  • appendfilename appendonly.aof
  • appendfsync everysec

  • ## 开启 AOF 持久化,定义 aof 文件名,定义同步磁盘规则为每秒强制同步

  • no-appendfsync-on-rewrite yes
  • auto-aof-rewrite-percentage 100
  • auto-aof-rewrite-min-size 64mb

  • ## 由于 AOF 的特性是记录每次操作,当客户端执行相同的操作时,aof 也会记录这些相同的每次操作,那么 aof 文件会不断增加。
  •    对于这个问题,可以使用 aof 文件的重写功能解决 aof 文件的增长。当 aof 文件满足一定条件时就对 aof 进行重写,重写是根据当前内存数据库中的数据进行遍历到一个临时的 aof 文件,写完后替换原来的 aof 文件。

  • ## no-appendfsync-on-rewrite    参数表示在重写期间对新接收到的写操作不同步,暂时存在内存中,等重写完后再写入,防止与磁盘 IO 冲突。
  • ## auto-aof-rewrite-percentage  参数表示 aof 文件增长率大于这个值并且同时 aof 文件大于下面参数值时,触发 aof rewrite
  • ## auto-aof-rewrite-min-size    参数表示当前 aof 文件大小大于这个值时
2、测试 Redis AOF 持久化



  • [root@study ~]# redis-server /usr/local/redis/redis.conf

  • [root@study ~]# ls /usr/local/redis/data/
  • appendonly.aof

  • ## 生成一个 .aof 的空文件



  • [root@study ~]# redis-cli

  • redis 127.0.0.1:6379> set name wang
  • OK
  • redis 127.0.0.1:6379> get name
  • "wang"
  • redis 127.0.0.1:6379> set name1 zhao
  • OK
  • redis 127.0.0.1:6379> get name1
  • "zhao"
  • redis 127.0.0.1:6379> set name2 lun
  • OK
  • redis 127.0.0.1:6379> get name2
  • "lun"
  • redis 127.0.0.1:6379> quit



  • [root@study ~]# cat /usr/local/redis/data/appendonly.aof

  • *2
  • $6
  • SELECT
  • $1
  • 0
  • *3
  • $3
  • set
  • $4
  • name
  • $4
  • wang
  • *3
  • $3
  • set
  • $5
  • name1
  • $4
  • zhao
  • *3
  • $3
  • set
  • $5
  • name2
  • $3
  • lun

  • ## 记录了每一次操作



  • [root@study ~]# kill -9 `cat /usr/local/redis/logs/redis.pid`

  • ## 像测试 RDB 一样,非法关闭 redis



  • [root@study ~]# redis-server /usr/local/redis/redis.conf


  • [root@study ~]# redis-cli
  • redis 127.0.0.1:6379> get name
  • "wang"
  • redis 127.0.0.1:6379> get name1
  • "zhao"
  • redis 127.0.0.1:6379> get name2
  • "lun"
  • redis 127.0.0.1:6379> quit
## 启动测试 keys/value 都存在。
## 建议使用 AOF 持久化的同时也使用 RDB 半持久化,AOF 的优先级是高于 RDB 的,也就是说启动服务时是先加载 AOF ,后加载 RDB 的。
## 当 Redis 服务器磁盘坏掉时,数据如何保证不丢失? Master / slave 的方式解决!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-155068-1-1.html 上篇帖子: Redis监控技巧总结 下篇帖子: Redis 主从同步
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表