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

[经验分享] Redis持久化存储

[复制链接]

尚未签到

发表于 2018-11-2 12:52:50 | 显示全部楼层 |阅读模式
Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持四种持久化方式,一是 Snapshotting(快照)也是默认方式;二是Append-only file(缩写aof)的方式;三是虚拟内存方式;四是diskstore方式。下面分别介绍之。  

  一、RBD(快照)
  原理
  在某个时间点将内存中的数据写入一个磁盘的临时文件,持久化结束后,用这个临时文件替换上次持久化的文件。
  配置文件
  save 900 1                              # 在900秒内如果键值修改过1次就快照
  save 300 10                             # 在300秒内如果键值修改过10次就快照
  save 60 10000                           # 在60秒内键值修改过10000次就快照
  stop-writes-on-bgsave-error yes         # 后台备份出错时,是否禁止新的写入操作?
  如果不禁止容易造成数据不一致
  rdbcompression yes                      # 导出的rdb文件是否压缩
  rdbchecksum yes                         # 恢复时导入rdb文件是否检验完整性、是否检验版本是否一致
  dbfilename dump.rdb                     # 导出来得rdb文件名
  dir /var/lib/redis                      # rdb的存放路径
  二、AOF
  原理
  通过将发送到服务器的写操作命令记录下来,形成AOF文件,此文件只许追加不能修改,Redis启动时会读取AOF文件后重构数据(重新执行一遍)。文件默认名称是appendonly.aof
  配置文件
  appendonly no                           # 是否开启aof功能
  appendfilename "appendonly.aof"         # 文件名
  appendfsync always                      # 只要一修改就同步至缓冲区,并同步至磁盘
  appendfsync everysec                    # 每秒将数据同步至缓冲区,并同步至磁盘
  appendfsync no                          # redis不设定同步策略,由内核设定的参数决定是否同步
  no-appendfsync-on-rewrite no            # appendfsync设定为always或everysec的话,还要不要同步磁盘
  auto-aof-rewrite-percentage 100         # 每隔多久重构aof文件,单位秒
  auto-aof-rewrite-min-size 64mb          # aof文件最小为多少时重构一次aof文件。搭配上一条使用
  aof-load-truncated yes                  # 崩溃修复后自动进行全备
  aof重写、重构
  将大量重复的命令合并成一条命令,而不必频繁的去重新执行每一条命令.
  三、AOF对比RDB
  AOF更加安全,可以将数据即时同步到文件中,但是消耗磁盘I/O,效率低
  Snapshot更高效,它是服务器在正常运行情况下数据同步最佳手段,文件尺寸小,效率高,安全性低
  注:RDB与AOF同时开启  默认使用AOF来恢复数据
  四、常用架构
  

架构良好的环境中:Master使用AOF,Slave使用snapshot。原因是主要确保数据完整,从要速度快。  
网络环境较差:建议使用master与slave同时使用AOF更加安全
  
网络良好、需要收密集型写操作:建议Master采用snapshot,Slave采用AOF



运维网声明 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-629863-1-1.html 上篇帖子: 非关系型数据库Redis Linux 下安装 下篇帖子: Redis面试题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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