标签:推荐 数据集 完整 for 时间间隔 行数据 运行时 snap 复制
Redis 提供了多种不同级别的持久化方式:
rdb恢复可能会丢失几分钟的数据
快照功能并不是非常耐久(durable): 如果 Redis 因为某些原因而造成故障停机, 那么服务器将丢失最近写入、且仍未保存到快照中的那些数据。
尽管对于某些程序来说, 数据的耐久性并不是最重要的考虑因素, 但是对于那些追求完全耐久能力(full durability)的程序来说, 快照功能就不太适用了。
aof文件体积较大,有bug存在,得小心避免
如果你非常关心你的数据, 但仍然可以承受数分钟以内的数据丢失, 那么你可以只使用 RDB 持久化。
有很多用户都只使用 AOF 持久化, 但我们并不推荐这种方式: 因为定时生成 RDB 快照(snapshot)非常便于进行数据库备份, 并且 RDB 恢复数据集的速度也要比 AOF 恢复的速度要快, 除此之外, 使用 RDB 还可以避免之前提到的 AOF 程序的 bug 。
在默认情况下, Redis 将数据库快照保存在名字为 dump.rdb
的二进制文件中。
你可以对 Redis 进行设置config, 让它在“ N
秒内数据集至少有 M
个改动”这一条件被满足时, 自动保存一次数据集。
你也可以通过调用 SAVE 或者 BGSAVE , 手动让 Redis 进行数据集保存操作。
比如说, 以下设置会让 Redis 在满足“ 60
秒内有至少有 1000
个键被改动”这一条件时, 自动保存一次数据集:
save 60 1000
这种持久化方式被称为快照(snapshot)。
当 Redis 需要保存 dump.rdb
文件时, 服务器执行以下操作:
fork()
,同时拥有父进程和子进程。这种工作方式使得 Redis 可以从写时复制(copy-on-write)机制中获益。
你可以通过修改配置文件来打开 AOF 功能:
appendonly yes
从现在开始, 每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会被追加到 AOF 文件的末尾。
这样的话, 当 Redis 重新启时, 程序就可以通过重新执行 AOF 文件中的命令来达到重建数据集的目的。
标签:推荐 数据集 完整 for 时间间隔 行数据 运行时 snap 复制
原文地址:http://www.cnblogs.com/xiangqianzou/p/6999852.html