PHP:tmpfs 与 memcached

D.U*_*own 5 php memcached

我想在 RAM 中存储信息(会话和大量字符串),但我不知道应该使用 tmpfs 还是 memcached 服务器。有人做了一些基准测试,知道哪个更快?某些 ajax 脚本需要每个登录用户每 1-5 秒请求一次信息,例如 PHP 中的网络聊天。所以PHP 必须经常连接到memcache。

使用 tmpfs 的好处应该是我可以创建很多文件并有一个结构(目录),而我在 memcached 中只有一个键值系统,但我可以使用数组或对象来存储信息。如果有任何差异,CPU 负载也很有趣。

谢谢。

小智 5

只是几点

  1. tmpfs 或 ramdisk 比 memcached 更成熟(使用时间更长,但两者都很稳定
  2. tmpfs 是可扩展的(您可以根据需要调整大小或增加而不会丢失 tmpfs 的内容
  3. 如果您需要另一台机器上的内存或需要在机器之间共享该信息,则 memcahced 非常有用。
  4. 本地文件/套接字/管道性能始终比网络套接字快,并且在 tmpfs 中访问文件与任何其他文件相同,因此它不需要任何 3rd 方库。

如果您不希望您的数据增加您服务器上的内存,请使用 tmpfs。

如果您必须在服务器之间共享数据或想要存储更多适合本地服务器 RAM 的数据,请使用 memcahed。


Pas*_*TIN 2

我不太了解速度,但关于 memcached 需要考虑以下几点:

  • memcached 基于集群式架构:您可以添加任意数量的物理服务器,在其上安装 memcached 守护进程,并且集群中拥有更多内存
    • 这意味着使用 memcached 可以缓存的数据量实际上没有限制:如果您需要更多内存,只需添加几个服务器
    • 另一方面,使用 tmpfs,您会受到每台服务器上可用 RAM 量的限制
  • memcached 是一种缓存机制;它不是用来存储数据的;意思是 :
    • 当没有足够的内存来存储新项目时,旧项目将从缓存中删除
    • 每个项目都有一个生命周期;当它过期时,该项目将从缓存中删除
  • memcached 是共享的:您可以让多个 PHP 服务器访问单个 memcached 集群
  • 有许多现有的基于memcached的库,或者创建来访问memcached
    • 包括 PHP 的一些会话机制
    • 和几个缓存库
  • memcached 和 tmpfs 都不是为了持久性而设计的——如果您需要持久保存数据(即即使重新启动后仍然可用),您需要使用数据库之类的东西。


最后,不确定 tmpfs,但我可能会使用 memcached,至少在涉及到:

  • 会议
  • 缓存

为什么 ?因为它是 :

  • 成熟——用得很多,有很多库,...
  • 且可扩展