Redis是一个仅存储器的存储器,如memcached,还是将数据写入磁盘

时间:2012-06-14 21:42:49

标签: redis

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

2 个答案:

答案 0 :(得分:35)

Redis持久性在这里有详细描述:

http://redis.io/topics/persistence

默认情况下,redis执行快照

  

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

另一个很好的参考是这个链接到作者的博客,他试图解释redis持久性是如何工作的:

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

答案 1 :(得分:23)

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

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

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

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