2014-02-11 78 views
1

我還沒有遇到過關於如何保持數據庫和memcache同步的好建議。 我在我的web應用程序中使用MySQL 5.5.28,Zope 2.12.19。同步memcache和MySQL

所以,一些建議就像是一旦你從memcache中進行選擇(在高速緩存命中期間),它就從高速緩存發送數據。在緩存失效後,再次從數據庫中選擇數據以便重新填充緩存。但僅僅因爲數據庫操作昂貴,我們選擇首先使用緩存。那麼這是如何解決更快訪問的問題呢?

另一種解決方案似乎是使用源表上的觸發器更新memcache。任何有關這方面的意見將不勝感激,因爲我不明白這是如何完成的。

回答

1

以下是我可以找到上述問題的最佳解決方案的鏈接。

我的第一個問題的答案提到了快速變化的數據使用緩存。 那麼,如果數據頻繁變化,那麼緩存並不理想。用戶數量減少也是如此。 但是,如果網站點擊次數增加,那麼當使用以下方法時,緩存將非常有用:

INSERT,UPDATE或DELETE操作將調用會使緩存無效的觸發器。 加載頁面時,將使用SELECT,並將生成的數據存儲在緩存中,直到再次更改。這樣,通過在各個表上使用INSERT,UPDATE,DELETE的觸發器,應用程序的代碼不必在整個系統中修改。只有SELECT需要在代碼中處理。

關於我如何使用觸發器來操縱緩存的第二個問題,下面的鏈接已經extemely有用的回答我的問題:

http://code.openark.org/blog/mysql/using-memcached-functions-for-mysql-an-automated-alternative-to-query-cache