我正在使用memcache進行緩存(顯然),這是偉大的。但我也將它用作交叉請求/進程數據存儲。例如,我在我的一個網頁上進行網絡聊天,並使用memcache將在線用戶列表存儲在其中。工程很好,但它困擾我,如果我不得不刷新整個memcache服務器(無論出於何種原因),我放棄了在線列表。我也用它來保留一些內容的視圖記錄(然後我定期更新數據庫中的實際行),如果我清除了緩存,我將丟失有關視圖的所有數據(從最後一次寫入數據庫)。什麼使用,而不是memcache
所以我問的是這個:我應該用什麼來代替memcache來處理這種事情?它需要快速,最好將其數據存儲在內存中。我認爲一些noSQL產品會很適合這裏,但我不知道哪一個。我想使用一些我將來可以用於其他用例的東西,想到分析(例如用戶搜索最多的是什麼)。
我使用PHP,因此它必須具有良好的綁定。
打了我幾秒鐘。 +1用於redis。有助於它像memcache一樣工作,但可以堅持。可能還應該提及它有四種不同的PHP驅動程序。我相信其中一個人會以你喜歡的方式工作。 – lazyconfabulator 2010-09-21 13:05:01
出於好奇:可以使用redis而不是memcache嗎?如果是,爲什麼? – 2010-09-21 13:06:35
Redis是一個完整的持久性數據結構存儲守護進程。很像RDMS(沒有ACID)。它允許使用許多複雜的數據類型,如列表,集合和有序集合。對我來說,這聽起來像是一個很適合你的需求。 – 2010-09-21 13:38:06