Redis 内存是仅像 memcached 一样存储还是将数据写入磁盘?如果它确实写入磁盘,磁盘多久写入一次?
问问题
19332 次
2 回答
36
Redis持久化在这里详细描述:
http://redis.io/topics/persistence
默认情况下,redis 执行快照:
默认情况下,Redis 将数据集的快照保存在磁盘上的一个名为 dump.rdb 的二进制文件中。如果数据集中至少有 M 次更改,您可以将 Redis 配置为每 N 秒保存一次数据集,或者您可以手动调用 SAVE 或 BGSAVE 命令。例如,如果至少更改了 1000 个键,则此配置将使 Redis 每 60 秒自动将数据集转储到磁盘: save 60 1000
另一个很好的参考是作者博客的链接,他试图解释 redis 持久性是如何工作的:
于 2012-06-14T21:51:02.600 回答
23
Redis 将所有数据保存在内存中。如果应用程序的数据量太大,那么 Redis 就不是一个合适的解决方案。
但是,Redis 还提供了两种方法来使数据持久化:
1) 以预定义的时间间隔进行快照,这也可能取决于更改的数量。这些间隔之间的任何更改都将在电源故障或崩溃时丢失。
2)在每次数据更改时编写一种更改日志。您可以微调将其物理写入磁盘的频率,但如果您选择始终立即写入(这会降低您的一些性能),则不会因 Redis 的内存性质而导致数据丢失。
于 2012-06-17T09:55:18.193 回答