2012-05-15 48 views
1

我目前有一個閱讀繁重的移動應用程序(90%讀取,10%寫入),通過php調用和單個MySQL數據庫與單個Web服務器進行通信。數據庫存儲用戶配置文件信息和用戶發送和接收的消息。我們每秒鐘會向db添加幾條消息。過濾存儲在Couchbase中的數據

我正在進行水平伸縮,負載平衡等過程。因此,我們將在Web服務器集羣前有一個負載均衡器,然後我計劃在MySQL的頂部放置一層Couchbase節點所以我們可以快速訪問用戶配置文件信息和消息信息。我們將在Couchbase中memcache所有用戶信息,但是我只想在Couchbase中最新的24小時消息memcache,因爲這是大部分閱讀活動發生的時間段。

對於存儲在memcache中的消息數據,我希望能夠根據消息字段中的各種數據篩選消息,如國家,城市,時間等。我知道Couchbase使用KV方法,因此我無法使用where子句查詢,就像我會用MySQL一樣。

有沒有辦法做到這一點? Couchbase查看答案?還是我完全用Couchbase咆哮錯誤的樹?

回答

0

Couchbase Server 2.0及更高版本中的視圖是您正在尋找的。如果放入Couchbase中的數據是JSON,則可以使用這些視圖對放置在Couchbase集羣中的數據執行查詢。

請注意,您可以使用以數組形式發佈日期時間的視圖(一種常用技術),甚至可以在限制視圖時間段內使用該視圖,以便您可以將所有數據存儲在Couchbase中,而無需需要把它放在另一個系統中。如果您還有其他原因,那麼您可以在將這些項目放入緩存後24小時過期。然後,如果您使用的是支持它的客戶端之一,則可以在緩存中獲取並觸摸該文檔,以便在需要時延長到期日期。唯一的缺點是你需要提出一種在更新時使文檔失效的方法。

一種方法是在mysql中觸發一個將刪除給定鍵的觸發器 - 另一種方法是使其從應用程序層無效。

p.s .:完全披露:我是一個Couchbase人

相關問題