2009-08-19 97 views
1

我正在學PHP的網站的高性能編碼,這個想法突然出現在我的腦海裏:是否有可能在PHP中保留內存中的變量(RAM)?

我們知道,訪問數據庫使用大量的CPU使用率,所以我們緩存這樣的數據,保存到HDD。但我想知道,它不能在服務器的RAM中休息,所以我可以更快地訪問它甚至更​​多

+1

請記住,操作系統也爲您緩存RAM中的文件。 – leeeroy 2009-08-19 23:11:04

回答

1

PHP通常帶有APC作爲一個字節碼緩存。您也可以將其用作本地緩存。如果你需要分佈式/集羣環境中的某些東西,那麼memcached(加上可能的beanstalkd)就是要走的路。

0

XCache,eaccelerator,apc和memcache允許您將項目保存到半持久性內存(您不一定知道項目在大多數情況下何時到期)。它與數據庫不一樣,更像是一個鍵/值列表。缺點是它需要第三方庫,所以根據您的環境,您可能會受到一些限制。

我想你可能會使用共享內存(通過php的shmop_函數)獲得相同的效果。但是我從來沒有使用過它們,或者知道它們是否包含在php的庫中,所以有人可以自由地打我或編輯這個提及。

0

如果你的服務器是任何好,那麼它已經這樣做了。但是,當然,也可能出現這種情況,除了你的服務器,你的服務器還有幾千個其他任務,這意味着你自己沒有那個服務器的緩存。

如果除了你之外確實還有其他幾千人在服務,那麼在其他成千上萬的人中至少有一個瘋子的可能性更高,他們正在做一些他真的不應該做的事情,但是服務器尚未被編程爲檢測,未編程爲停止,而是被編程爲嘗試並充分利用它,代價是x999「負責」用戶的資源可用性。

相關問題