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