2014-02-27 43 views
0

請提前接受我的道歉,因爲這可能是一個愚蠢的問題。但是...將數據保存到內存,並在一段時間後將它們保存到DB

我正在做一些實時推薦系統的工作。有數據像概率,獎勵和它的歷史(通過一些時間戳或類似的東西)被存儲。我需要首先將它們存儲在內存中,並在經過一段時間後(定期每隔一小時)將其存儲到數據庫(如果發生某些服務器錯誤,可以輕鬆恢復它),因此我試圖找到一些要使用的技術,並找到了Redis和Cassandra。但我現在有點困惑。

我覺得有可能是這個解決方案:

在RAM中存儲的數據(由Redis的...更多precisly一些Redis的客戶端庫),然後運行一些老嫗將採取從存儲這些數據,並將它們存儲到一些數據庫(可能是NoSQL?哪一個?)...因爲我認爲我不能直接用Redis來做這件事。

這種方法好嗎?或者你有另外的解決方案嗎?

+0

您確定要使用*附加*數據庫嗎?你有沒有檢查http://redis.io/topics/persistence? – Agis

+0

我之前沒有檢查過你的鏈接,但它看起來很有趣。我的目標也是時間的可視化(概率的演變),所以我需要通過時間戳來記錄一些歷史記錄......我不確定這是否可以通過Redis持久性(通過一些快照或AOF)來實現 –

+1

如果您使用時間戳if你將它們轉換爲整數並在[Sorted Set]中使用它們(http://redis.io/commands#sorted_set)。然後你可以按日期排序等。 – Agis

回答

1

Redis do提供了兩個持久性選項。我強烈建議閱讀documentation about them

如果您想將其他數據庫用作備份存儲,也許您最好使用Redis提供的內容而不是將另一項技術添加到您的堆棧中。無論如何,你應該分析兩者並找出哪一個更適合你。這就是說,如果你需要更多的耐用性,你應該更好的AOF