###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

posted @ 2020-03-10 14:37  Choice_Than_to  阅读(154)  评论(0编辑  收藏  举报