2015-12-18 47 views
0

我的symfony應用程序在線有500名用戶,並且所有頁面上都有一些文章列表。我將查詢和結果存儲在APC中,這是由管理員在某些數據更改時手動刪除的。這裏是問題:如何在高流量應用程序中'刷新'apc緩存?

如果我是正確的,如果我的500個用戶刷新頁面時,緩存被刪除,並嘗試更新它(通過首先查詢數據庫)其他499是在緩存完成前損害數據庫。

如何避免這種情況? APC中是否有任何防止它的選項,或者我需要手動管理它?如果新的還沒有準備好,最好的選擇應該是提供舊的緩存。

+0

你緩存什麼樣的數據?對所有用戶來說都很常見,或者對每個用戶來說都是私人的? –

+0

@MaxP。適用於所有用戶 –

+0

可能不是問題。可能有一位用戶會在第二位用戶請求之前刷新它。 –

回答

0

不幸的是我恐怕沒有開箱即用的解決方案。 如果你看看Memcached的捆綁他們實現一個解決方案來避免這個問題:enter link description here

也許你可以啓發寫自己的解決方案。

0

如果所有用戶都通用,則可以通過後臺腳本爲緩存準備數據並通過cron執行。此外,還可以將版本添加到此數據的緩存密鑰中,並將版本存儲在apc中。在爲緩存準備數據時,使用新版本增加版本並保存新數據,而不是在apc中更改版本。

相關問題