使用 memcached 有什么好处吗?本地过度使用已挂载的 tmpfs?
也许,当内存缓存系统驻留在同一个主机上时,最好使用 tmpfs 上的文件层次结构,这样就可以使用标准系统 API 和文件处理工具?
答案1
我的直觉告诉我,memcached 的效率会更高,因为文件系统会在每次创建时维护每个对象的所有权和权限标志,并在每次打开文件进行读取时检查它们。此外,您可能会发现 memcached 的结构比 tmpfs 文件系统的索引更好,后者使用无序列表来列出目录,因此必须扫描(平均)一半的目录列表才能找到对象,而不是能够进行更有效的分而治之搜索。
我假设您指的是存储许多缓存结果,其中大多数结果相对较小,每个结果都存储在基于 RAM 的文件系统上的各自文件中。如果您指的是将许多结果保存在 tmpfs 上的单个文件中,那么基于内存的 sqlite 数据库将更高效,并且可以节省您在索引管理和高效搜索方面的重复工作。
当然,正如您所说,能够使用任何了解文件系统的工具来操作缓存可能是一个足够强大的优势,可以使大多数效率论点变得毫无意义。
当然,哪种技术更好在很大程度上取决于您使用它的目的,因此在问题中添加有关您的项目的更多详细信息可能是个好主意。作为代码/数据优化查询,这可能是 StackOverflow 而不是 ServerFault 的问题(服务器管理员不太可能选择项目的缓存存储选项,除非程序员已经实现了多个选项可供选择)- 您可能会在那里找到已经为他们的项目对 memcached/sqlite/tmpfs/custom_solution 进行基准测试的人,他们可以为您提供一些有用的比较数据。