2014-03-25 42 views
2

我有一個使用couchbase作爲數據庫的nodejs項目。 只是想知道如果我存儲在將臨時數據存儲在couchbase或redis中

1.redis

或直接在

2.couchbase臨時數據。

據我所知couchbase有套接字延遲,我覺得在redis中存儲臨時數據的同時存儲在couchbase中的永久數據更好。 有沒有人有這方面的經驗?

您的評論歡迎

回答

4

我是一個大風扇的Redis,但在這種情況下,我只會用Couchbase。

Couchbase相當高效,並且與您的數據的工作集適合內存時memcached的性能相當。大多數情況下,Couchbase上的額外緩存層沒有用處。也就是說,如果你確實需要一個緩存層,或者只是一些臨時數據存儲,你可以簡單地創建一個Couchbase集羣中託管的memcached桶。因此,您將擁有持久數據的「最終持久化」存儲區和臨時數據的memcached存儲桶。

桶類型說明如下:

http://docs.couchbase.com/couchbase-manual-2.5/cb-admin/#data-storage

在這種情況下,增加的Redis作爲一個額外的存儲層並沒有真正意義。

0

Couchbase內置了託管緩存,即使對於Couchbase存儲桶也是如此。所以它已經有了一個緩存層,並且在頂部添加另一個層就是多餘的。

我不確定你在Couchbase中的套接字延遲是什麼意思。你能解釋一下嗎?那是我以前從未見過的,並且是對我懷疑的。我會嘗試解決這個問題,並找出在添加redis之前是什麼,並有另一個層來管理和編碼。如果不瞭解套接字延遲,就很難提出更多的建議。

+0

應用服務器通過套接字/ REST訪問CouchBase服務器,即使它們(應用程序物理服務器和CouchBase物理服務器)在同一個本地網絡中,我認爲延遲比直接訪問內存中的數組/列表要慢。這就是我說'套接字延遲'。大多數情況下,延遲可以忽略不計,但對於高速實時的比賽,這將是一個巨大的差異 – arachide

+0

的Couchbase SDK的NodeJS不應該打對數據的REST接口。它會打到REST端口來獲取clustermap。客戶端SDK應該是11210. 無論如何,你可能有其他的東西在繼續。像操作系統中沒有足夠的文件描述符或類似的東西。我已經看到couchbase每秒可以輕鬆處理數千個操作,所以我的建議是檢查您的安裝並將其與安裝文檔進行比較,看看是否有錯過的設置,或者應該設置但不是。 – Kirk

0

這是一個古老的問題,但我也會接受它,如果沒有其他人通過谷歌瀏覽它,就像我一樣。

我同意他接受的答案,因爲CouchBase在RAM中有最近使用的文檔。在這方面,它和Redis一樣。 CouchBase的優勢當然是數據可以可靠地溢出RAM限制,並且服務器磁盤會自動通過添加更多節點來限制。

但是,我有一個項目,我正在考慮使用Redis的側邊CouchBase。它基本上被認爲是一個緩存服務器,但對於「計算」的項目。如html-snippets或其他東西。 CouchBase是一個出色的文檔存儲,但是製作列表和其他結構並不是那麼容易,尤其是沒有很多觀點。所以我在考慮使用Redis作爲臨時數據存儲,用於所需的特定數據操作,並將CouchBase作爲主要數據存儲。