zoukankan      html  css  js  c++  java
  • Redis持久化存储

    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
  • 相关阅读:
    关于DateFormater
    Swift 排查引用循环
    AutoLayout与UIbutton
    UIScrollView 在Autolayout下使用的一些问题
    sourceTree .gitignore文件处理
    Mp4V2与ffmpeg静态库符号冲突问题解决
    iOS 处理HLS视频流
    对于UITableView和UIImageView的DrawRect重写之后的影响
    UILabel的DrawDrect方法
    《iOS面试之道》-勘误2
  • 原文地址:https://www.cnblogs.com/aubin/p/7846511.html
Copyright © 2011-2022 走看看