Redis 是像 memcached 一样只存储内存,还是将数据写入磁盘



Redis 内存是只像 memcached 那样存储还是将数据写入磁盘?如果确实写入磁盘,磁盘写入的频率是多少?

Redis 持久性在这里进行了详细描述:

http://redis.io/topics/persistence

默认情况下,Redis 执行快照

默认情况下,Redis 将数据集的快照保存在磁盘上,保存在名为 dump.rdb 的二进制文件中。您可以将 Redis 配置为在数据集中至少有 M 个更改时每 N 秒保存一次数据集,也可以手动调用 SAVE 或 BGSAVE 命令。 例如,如果更改了至少 1000 个密钥,此配置将使 Redis 每 60 秒自动将数据集转储到磁盘:保存 60 1000

另一个很好的参考是指向作者博客的链接,他试图解释 redis 持久性的工作原理:

http://antirez.com/post/redis-persistence-demystified.html

Redis 将所有数据保存在内存中。如果应用程序的数据太大,则 Redis 不是合适的解决方案。

但是,Redis 还提供了两种使数据持久化的方法:

1) 按预定义的时间间隔拍摄快照,这可能还取决于更改的数量。这些间隔之间的任何更改都将在电源故障或崩溃时丢失。

2)在每次数据更改时编写一种更改日志。您可以微调将其物理写入磁盘的频率,但是如果您选择始终立即写入(这会降低一些性能),那么 Redis 的内存特性不会导致数据丢失。

最新更新