###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  阅读(173)  评论(0)    收藏  举报