zoukankan      html  css  js  c++  java
  • Redis持久化方式

    Snapsotting(快照RDB)方式

         snapsotting是默认方式,(把数据做一个备份,将数据存储在文件)

          这种方式将内存中数据照快照方式写到二进制文件中.默认的文件名为“dump.rdb”。可以通过配置(“redis.conf”)设置自动做快照持久化的方式,可以配置redis在n秒内如果超过m个key键修改就自动做快照

    Save 900 1     
    Save 300 10     
    Save  60 1000  

        上面含义是900秒后有一个key键发生修改就执行Save。300秒后有10个key发生修改就执行Save。60秒后有1000个key发生修改就执行Save。

         数据快照的缺点是持久化之后如果出现系统宕机就会丢失一段数据。

    Append-only file(aof)方式

          由于快照方式在一定间隔时间做一次Save,所以如果出现系统宕机情况下,就会丢失最后一次快照后的所有修改。aof方式有更好的持久化性,由于是在使用aof,redis会将每一次收到的写命令都通过whle函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令在内存中从建整个数据库内容。开启aof日志记录,需要在配置(“redis.conf”)文件中进行如下配置

    appendonly yes

          Appendonly配置不开启,可能在会断电时导致一段时间的数据丢失,因为Redis本身同步数据配置时是按Save条件同步,所有有的数据会在一段时间内只存在内存中

    Appendfsync:no/always/everysec

             no:表示等操作系统进行数据缓存同步到磁盘,性能最好,持久化没有保障

             always:表示每次更新操作后手动调用fsync()将数据写到磁盘,每次收到写命令就立即强制写入磁盘,性能最差,但是保障完全的持久化

             Everysec:表示每秒同步一次,每秒钟强制写入磁盘一次。在性能和持久化方面做了很好的折中

      数据恢复

         当Redis服务器挂掉以后,重启时按照以下优先级恢复数据到内存

    1. 如果只配置了AOF,重启时加载AOF文件恢复数据
    2. 如果同时配置了RDB和AOF,启动时只加载AOF文件恢复数据
    3. 如果只配置了RDB  ,启动时将加载dump文件恢复数据       
  • 相关阅读:
    利用树莓派把普通打印机变成网络打印机方法
    Python之datetime库
    CentOS7从默认/home中转移空间到根分区/
    更改Azure虚拟机账号密码
    创建一个托管磁盘的Windows定制镜像
    IO多路复用详解
    玩转redis
    EF Linq to Sql 多表left join查询并对结果group by分组之后进行count,max等处理
    免费,主流的在线办公/协作,会议,文档,调查,分享工具推荐(持续维护中)
    多sql查询count合并为一行
  • 原文地址:https://www.cnblogs.com/yan7/p/7805071.html
Copyright © 2011-2022 走看看