2009-09-16 25 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多於一個生產/消費它們。

相關問題