我试图理解为什么需要使用像memcached这样的解决方案。这可能看起来是一个愚蠢的问题 - 但如果我只需要缓存对象,它会带来什么好处呢?简单的哈希映射不行吗?
你打算把这个哈希表放在哪里?它为你做了什么。在PHP上实现的任何结构都只存在于请求结束之前。如果你将东西放入持久缓存中,你可以在其他请求中获取它,而不是重新构建数据。
使用完整的缓存系统通常允许您在许多服务器上复制缓存,或者只是扩展到许多服务器以处理大量并行请求,在响应方面仍然保持足够快速。
这里有一篇(旧的)文章比较了 PHP 中使用的不同缓存系统: https://www.percona.com/blog/2006/08/09/cache-performance-comparison/
基本上,文件缓存比 memcached 更快。
因此,为了回答这个问题,我认为你应该使用基于文件的缓存系统可以获得更好的性能。
以下是文章测试的结果:
Cache Type Cache Gets/sec
Array Cache 365000
APC Cache 98000
File Cache 27000
Memcached Cache (TCP/IP) 12200
MySQL Query Cache (TCP/IP) 9900
MySQL Query Cache (Unix Socket) 13500
Selecting from table (TCP/IP) 5100
Selecting from table (Unix Socket) 7400