2009-09-16 57 views

回答

3

如果您想在PHP脚本之间传递数据,建议使用memcached或数据库。或者可能是APC。

如果脚本属于同一个会话,它们理论上可以通过会话进行通信,但这在大多数情况下实际上是单向通信,因为在任何时候只有一个脚本可以访问会话(session_start()lock会话直到该脚本隐式或显式结束会话)。

1

PHP脚本运行的模型并没有真正包含这些脚本的内存中任何类型的持久化的概念,因为通常它们被设计为只运行服务所请求页面所需的最少时间。这使得这些脚本之间的有状态通信很难有任何有意义的用途,因为通常一旦页面被提供,脚本就没有更多的工作了。因此,通常PHP脚本之间的任何通信都是通过操作数据库条目等来完成的。

如果您有某种应该发生的连续处理需要传递数据,则可能需要查看其他Web应用程序模型(如servlet)。

+0

好东西,但很多讲课,试图偏离一个很好的答案! – 2009-09-16 01:26:13

2

我相信马丁和克莱的建议是有效的。我的选择将是脚本最终目标的功能。

  • 你会投掷多少数据?你能处理外部过程的开销吗?
  • 你交换什么样的数据?它是否正常化?还是现在值得正常化?
  • 您是否需要稍后参考该数据?还是可以在处理后丢弃它?
  • 这些脚本会运行在不同的服务器上吗?

  • 平面文件,具有锁定机构

  • 关系DB
  • 文献DB(键/值存储,是否持续性或不)
  • 共用存储器(APC,或核心功能)
  • 消息队列(Active MQ和公司)

我想你会通过外部化过程获得最大价值,因为您可以有多台计算机管理消息/数据d多于一个生产/消费它们。

相关问题