2012-03-09 113 views
1

我们正在运行一个执行财务建模的网站,并且memcache需要一段时间来构建其缓存。例如,1周后,点击次数仅为48%,所使用的缓存为2GB(分配的5GB之中)。由于我们不希望在服务器崩溃或需要重新启动时丢失缓存,因此我们希望将其保存在某处。将memcache数据保存到文件或数据库中

问:什么是用于存储memcache缓存某处永久的内容(和恢复的内容)的最佳选择?

到目前为止,我们还没有看到memcache达到点击的%没有改善的点。我们知道我们很快得到30%点击数据,其中300MB对应于共享内容的缓存。之后,对象变得更大,创建的次数也更少。通过查看我们的munin图表,我会说我们可以在2到3个月内达到我们最好的%。我真的认为我们有保存我们的memcache数据的情况。

enter image description here

仅供参考,我不加入显示命中/未命中的%,因为它的发展,所以慢慢地,它是不是真正可读的图表。

+0

您为memcached分配了多少内存?你提到的是2GB?如果缓存已满并且命中率较低,则可能用完了缓存空间,而memcached正在清除最旧的条目(这仍可能是有效的)。 – bhamby 2012-03-09 16:16:52

+0

Filesystem或Berlkey-DB会更好。你也可以使用'Redis',它就像memcache一样,同时自动处理持久化存储。 – kirilloid 2012-03-09 16:18:01

+0

@galador:我们已经为内存缓存分配了'5GB',现在它的'48%'分配了'2GB'。 – Max 2012-03-09 16:22:38

回答

1

我不建议在金融Redis的使用生产环境,此时它会变得不稳定。这是未来需要注意的问题。

CouchBase是一个解决方案。

您还可以使用repcached(http://repcached.lab.klab.org/)将memcache数据复制到第二个memcache守护进程,以防第一个崩溃,您仍然拥有所有的memcache数据。如果你愿意,你也可以使用这种类型的设置来平衡你的memcache使用情况,我已经使用了它一段时间了,并且对它的性能感到非常满意。