【发布时间】:2026-01-09 12:20:10
【问题描述】:
我正在考虑将 memcached 与我的 PHP 应用程序结合使用来存储 500 万个键值对。我的目标是避免从数据库(在我的例子中是文件系统)来回。我每秒可能对键值进行 100-500 次访问。键值都是 MD5,格式为:
array( 'MD5X' => 'MD5Y', ... )
我不确定数据是如何存储的,但如果我们将 5 million * 16 bytes (keys) + 5 million * 16 bytes (values) 相乘,我们会得到 ~180MB。
(编辑:在尝试使用真正的 memcached 实例后,我用了 750MB 来存储所有项目。)
数据集是固定的,所以我只会从中读取。
问题:
- 这是好的还是坏的设计?
- 能否强制 memcached 永远(除非服务器崩溃)重新加载数据?假设内存上限高于存储的数据?如果不是,我可以采用哪些技术来实现相同的目标。
非常感谢!
【问题讨论】:
-
您应该针对您的特定用例进行性能分析。或者考虑使用一个真正的数据库,因为它会内置缓存。如果你存储一个数组,你不需要拉整个数组来查看它吗?
-
感谢@PaulCollingwood,不幸的是我不能使用数据库。干杯
标签: memcached