目前,我有一個網站,人們可以在某些球隊的曲棍球比賽期間開放。當曲棍球隊得分時,指定人員點擊安全位置上的按鈕。這會使用當前時間戳更新MySQL數據庫中的單個條目。如何存儲數百個用戶每秒可以訪問的PHP變量?
在網站的前端,有一個異步調用,每15秒運行一次PHP腳本以查詢數據庫的時間戳。然後,腳本會將當前時間與拉出的時間戳進行比較,如果距離當前時間戳15秒內,它會在網頁上觸發一個事件,包括播放吹喇叭的聲音並播放該隊的目標歌曲的短片。
在球隊的比賽中,我通常會看到很多流量,然而很多人都抱怨在球門被觸發後得分達到了15秒。我想找一種方法來解決這個問題。
顯然,我不認爲每一個在頁面上的用戶都會每隔一秒查詢一次數據庫(想想100+)就會工作;我可能會殺死我的數據庫。那麼,還有另一種方法可以實現我的結果嗎?是否有可能將PHP變量放入服務器的內存中,每次會話都可以拉取一個PHP變量,而不會產生負面影響,例如使用數據庫或文件系統讀取?
編輯:我的房東沒有memcached
可供我使用,我無法安裝。這令人失望,因爲這聽起來像是最佳解決方案。有沒有人有另一種想法,我可以看看,不使用memcached
?
我真的很想接受這個答案,因爲它是正確的,並且能夠完美地回答我的問題。但是,在您建議使用`memcached`後,我開始查看它,並且它在主機上不可用,我無法安裝它。你不會偶然知道任何其他可能的解決方案嗎? – 2011-01-13 19:32:53
@ mririgo恐怕不是 - 這通常是這種情況下的第一個停靠港。可能是一個想法,試圖哄騙你的主機提供商添加它作爲一個選項。 – 2011-01-13 19:37:18