zoukankan      html  css  js  c++  java
  • redis持久化

    redis 持久化:
    1、RDB
    一是保存所有数据,而是保存所有操作命令,save是父进程做,当前进程会停止,使用bgsavd会启动一个子进程,不会影响父进程,但是子进程速度没有父进程快,每次生成dump.rdb都会覆盖原有备
    RDB方式,是将redis某一时刻的数据持久化到磁盘中,是一种快照式的持久化方法。
    redis在进行数据持久化的过程中,会先将数据写入到一个临时文件中,待持久化过程都结束了,才会用这个临时文件替换上次持久化好的文件。正是这种特性,
    让我们可以随时来进行备份,因为快照文件总是完整可用的。
    对于RDB方式,redis会单独创建(fork)一个子进程来进行持久化,而主进程是不会进行任何IO操作的,这样就确保了redis极高的性能。
    如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。
    虽然RDB有不少优点,但它的缺点也是不容忽视的。如果你对数据的完整性非常敏感,那么RDB方式就不太适合你,因为即使你每5分钟都持久化一次,当redis故障时,
    仍然会有近5分钟的数据丢失。所以,redis还提供了另一种持久化方式,那就是AOF
    2、AOF解决rdb缺点,用户可以根据自己的需要对aof持久化进行调整,让redis在遭遇意外停机不丢失任何数据,或者只丢失1秒的数据
    aof:每当修改数据库,都会将命令写入到aof文件结尾,所以只要执行aof所有命令就可以恢复了
    安全性:就算执行aof也不保证不对事数据,系统每次写aof文件时,会将数据写入系统缓存,之后才会写入磁盘aof文件
    AOF的appendfync选项:
    always:服务器没写入一次命令,就调用fdatasync,将缓冲区数据写入硬盘
    everysec:每秒钟调用fdatasync,这种最多只丢1秒数据
    no:服务器不主动调用fatasync,有操作系统决定缓冲区内容写入磁盘
    always速度慢,everysec和no很快,默认everysec

    AOF重写:
    1、客户端向服务器发送BAREWRITEAOF命令
    2、通过配置选项让服务器自动执行BAREWRITEAOF命令,分别是:
    auto-aof-rewrite-min-size 64mb,出发aof重写最小体积
    auto-aof-rewrite-percentage 100,扩展到了现在afo的一倍才会重写
    RDB_AOF这两种方式可以一起使用

  • 相关阅读:
    Ubuntu下SSH设置
    Runtime.getRuntime().exec学习记录[转贴]
    ffmpeg参数说明(转载)
    学习NSNotification经历
    iphone 推送服务Apple Push Notification Service
    MFC枚举窗口
    WebQQ协议分析(3)——获取用户信息
    Cannot access a disposed object
    WebQQ协议分析(1)——登录
    WebQQ协议分析(4)——获取好友信息(1)
  • 原文地址:https://www.cnblogs.com/qull/p/6579535.html
Copyright © 2011-2022 走看看