我正在考虑将memcached与我的PHP应用程序结合使用来存储500万个键值对。我的目标是避免来回DB(在我的例子中是文件系统)。我可以每秒对密钥值进行100-500次访问。键值既是MD5又是以下形式:
array( 'MD5X' => 'MD5Y', ... )
我不确定数据是如何存储的,但如果我们乘以5 million * 16 bytes (keys) + 5 million * 16 bytes (values)
,我们就会得到~180MB。
(编辑:尝试使用真正的memcached实例后,我用了750MB来存储所有项目。)
数据集已修复,因此我只会从中读取数据。
问题:
非常感谢!
答案 0 :(得分:0)
您会获得所需的性能吗?当然。 Memcache非常快速。 我们存储了大约1000万个密钥,我们每秒访问memcache大约700次。它永远不会让我们失望。
您可以在启动应用程序时加载内存缓存中的所有密钥,并将过期日期设置为很长时间。你要记住的事情是memcache最终是一个缓存。它不应该用作存储引擎。你必须设计它认为总是有可能找不到你需要的数据(密钥),并在那种情况下进行数据库调用。
您可以查看像cassandra这样的noSQL数据库的替代方案,它具有出色的读写速度,可以满足您的需求。唯一的问题是,与memcache相比,调整cassandra有点困难。