APC与自定义Mmap扩展

好的,所以我正在研究这个项目,要求我在桌面上进行内存键值存储查找。 我正在使用的业务规则也规定必须从每个单独节点的内存中读取该表,并且该表需要在多个请求中保持不变。

所以显而易见的解决方案是使用APC和apc_fetch(); 和apc_store();

问题是该表将包含成千上万的键值对,并且将是几兆字节(这将运行的机器是内存庞然大物)

因此,如果APC在加载时对用户缓存进行序列化,那么我在性能方面会有一些顾虑。

如果不是那么这不应该是那么大的交易然后它实际上将是更优化的解决方案。

但是,如果它不是一个更好的替代方案,在C中编写一个自定义扩展,对已保留到磁盘的结构化排序文件进行二进制搜索?

或者(希望)会写自定义扩展根本不值得。

胜利,失败,快速思考?

提前致谢

虽然APC将在加载时序列化,但是通过apc_fetch()的实际查找是通过哈希表完成的,并且应该没有表现出你所描述的瓶颈。 由于您的计算机是内存庞然大物,因此您应该考虑将APC的表调整为足以将所有键/值对保存在内存中。 这可以通过将php.ini中的apc.user_entries_hint设置为应用程序的适当值来完成。

尝试查看https://serverfault.com/questions/57915/ram-disk-and-physical-raid基本上查看linux上的tmpfs并将其用作一个规则文件系统,其中包含您想要的任何规则。 它也很容易在应用程序外调试和检查。