我正在使用memcached來存儲php網站的全局狀態。存儲的數據需要被來自任何登錄用戶的請求訪問。有沒有在memcached中保證對象永久性的方法?
我知道,如果memcached得到滿了,它只會轉儲最舊的對象。在這種情況下可以使用一些回退技術嗎?
或者,忽略memcached。什麼是在不借助MySQL的情況下在PHP中存儲全局狀態的更快方式?
我正在使用memcached來存儲php網站的全局狀態。存儲的數據需要被來自任何登錄用戶的請求訪問。有沒有在memcached中保證對象永久性的方法?
我知道,如果memcached得到滿了,它只會轉儲最舊的對象。在這種情況下可以使用一些回退技術嗎?
或者,忽略memcached。什麼是在不借助MySQL的情況下在PHP中存儲全局狀態的更快方式?
您可以在會話中存儲爲JSON。您也可以使用Redis(而不是memcached)和PHP並設置最大內存使用量。
Redis似乎是一個不錯的選擇,謝謝。關於會議,是不是每個用戶,即不是全球? –
是的,會話是每個用戶。對於全球性的東西,請使用Redis。 – Eric
你的問題就像問一個問題,如何長時間保持記憶。
如果舊項目已滿並且您將其他項目添加到其中,則Memcache將刪除舊項目。應用程序的工作方式應該是,當緩存返回null或由於某種原因而被禁用時,應該激活將某些項放入緩存的過程。 soemthing這樣的: 1-讀取從高速緩存 2-項目,如果該項目不是null 3-返回的項目 4-讀取從數據庫的產品(或任何其它源) 5-放項在高速緩存 6-返回項目
緩存不是一個永久性內存,您的應用程序應該設計成即使沒有現金也能工作。
但是,因爲它是應用程序狀態,所以對該項目的調用可能很高,不會進入隊列末尾。 雖然這不是一個好方法,但您也可以創建一個服務來從緩存中獲取該項目,以防止它進入隊列末尾。
好奇你不願意使用MySQL嗎? – bnxio
只是想加快速度。我存儲的所有數據都是按9個數組排列的每個用戶的元組{'userid','state1','state2','state3}。 –