zoukankan      html  css  js  c++  java
  • ###redis 持久化数据保存RDB&AOF

    redis 持久化数据保存RDB&AOF
    redis 数据的查询都是基于内存hash处理,但是为了防止断电榻机等问题造成数据的丢失,redis 采用持久化硬盘方式以应对数据丢失故障。

    先看下redis 目录操作命令:

    redis/bin 目录下有

        1. redis-benchmark  为redis 性能基准测试
    
        2. redis-check-aof   为aof 文件恢复出现异常的修复
    
        3. redis-check-dump 为rdb 文件恢复出现异常的修复
    
        4. redis-cli       为redis客户端操作
    
        5. redis-server 为redis 服务端启动程序   
    
    1. redis 持久化有两种方案可供选择RDB (redis data base ) 和 aof (append only file )

      rdb 详解:

       1)RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。
      
       2)redis.conf 配置茹下
      
            
      
        如果需要自定义快照rdb 的持久化方式,可以取消注释 save "",加入新的快照策略
      
      3)默认redis 使用快照的方式持久化内存数据至硬盘;
      
            save 900 1   900秒内有一个以上的key 写操作会另起一个线程进行快照的备份
      
      4) redis.conf  dir ./  设置数据存放目录
      
      5) rdbcompression yes 默认使用rdb 的压缩方式压缩文件。
      

      rdb 是redis 快速块照内存信息至硬盘持久化;但持久的方式

    aof 详解:

       1) aof 不是redis  默认开起的持久化方式。aof 的出现是弥补rdb 文件的不实时一致性。采用日志的形式来记录每个写操作,并追加到文件中
    
       2)aof 开启方式   appendonly yes
    

       3) 数据库文件名 appendfilename "appendonly.aof"

       4)文件追加方式  # appendfsync always  同步持久化,每次发生数据变化会立刻写入到磁盘中
    
                                  appendfsync everysec (默认方式)每秒异步写入磁盘 
    
                               #  appendfsync no  不同步
    
       5)aof 数据恢复,默认情况下,数据都会存在bin目录下,重新启动redis 即可以恢复之前的状态,load 硬盘数据至内存中
    

       6)aof 文件压缩配置 (redis 每次的操作都会append 至aof 文件末尾,导致文件异常庞大,此配置压缩文件,替换旧文件)

    1
    2
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    rdb 文件和 aof 文件可在生产中同时开启,redis 数据恢复首先加载aof 文件,如果aof 文件异常,可以使用rdb 恢复。
    总结
    Redis 默认开启RDB持久化方式,在指定的时间间隔内,执行指定次数的写操作,则将内存中的数据写入到磁盘中。
    RDB 持久化适合大规模的数据恢复但它的数据一致性和完整性较差。
    Redis 需要手动开启AOF持久化方式,默认是每秒将写操作日志追加到AOF文件中。
    AOF 的数据完整性比RDB高,但记录内容多了,会影响数据恢复的效率。
    Redis 针对 AOF文件大的问题,提供重写的瘦身机制。
    若只打算用Redis 做缓存,可以关闭持久化。
    若打算使用Redis 的持久化。建议RDB和AOF都开启。其实RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB

  • 相关阅读:
    springboot 集成 SMTP 发送邮件
    springmvc的controller中使用@Transactional无效
    Apache POI Java Excel easypoi
    java import和import static的区别
    ave an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IS
    未能加载文件或程序集“System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”或它的某一个依赖项
    matlab练习索引
    matlab练习程序(DWA)
    matlab练习程序(解西尔维斯特、李雅普诺夫方程)
    matlab练习程序(NDT)
  • 原文地址:https://www.cnblogs.com/fqnb001/p/12455555.html
Copyright © 2011-2022 走看看