标签:子进程 文件 cpu features 工作流 不同 两种 文件中 命令
前文中介绍到Redis时内存的K-V数据结构存储服务器。Redis的高性能原因之一在于其读写数据都是在内存中进行。它的架构实现方式决定了Redis的数据存储具有不可靠性,易丢失,因为RAM内存在硬件问题或者断电情况下都会被擦除。
基于以上问题,为了防止数据在特殊情况下丢失,Redis支持内存数据持久化至磁盘的功能——Redis Persistence。
Redis提供了两种持久化方式:
两种持久化方式完全不同。第一种是以完整的数据角度进行持久化,第二种是以日志的形式记录完整的写入操作。Redis用户可以在这两种方式之间进行trade off,也可以综合使用这两种方式。
RDB的优点:
AOF优点:
RDB的缺点:
AOF缺点:
上述比较了两种持久化方式的各自优缺点,两者的选择需要trade off。但是通常,综合使用两种持久化方式是不粗的选择。
单独使用RDB存在数据丢失风险,单独使用AOF对于重启和数据备份来说不是好的idea。基于以上两种原因,综合使用RDB和AOF,能满足数据备份和快速重启,也能将数据丢失的风险降到最低。
默认情况,Redis是将快照保存在一个二进制的dump.rdb文件中。可以配置Redis在最近间隔多少秒内发生多少变化时进行RDB持久化。或者可以使用SAVE或者BGSAVE命令。
例如:save 60 1000,如果每60秒发生1000次变化,则进行RDB持久化。
RDB的工作流程:
对于AOF方式,需要在配置文件中开启AOF,配置:appendonly yes。当有写入命令时,Redis会将其追加到AOF文件末尾。
可以配置AOF的fsycn策略:
建议的策略是每秒追加一次。
使用AOF方式有时可能出现文件损坏的问题,比如正在写入AOF文件时出现断电情况。这时可以使用redis-check-aof工具修复AOF文件
redis-check-aof --fix "filename",然后使用修复后的AOF文件启动Redis即可恢复数据。
AOF重写方式的工作流程:
触发RDB持久化配置需要在redis.conf中配置:
dir /usr/local/var/redis/
dbfilename dump.rdb
save 60 5
触发AOF持久化配置需要在redis.cong中配置:
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
Redis Persistence
Redis Persistence
标签:子进程 文件 cpu features 工作流 不同 两种 文件中 命令
原文地址:https://www.cnblogs.com/lxyit/p/9829105.html