2016-11-24 70 views
0

我在一個項目的開始階段,我的經理已經要求我們看看Redis,因爲我們已經有了一個集羣。Redis初學者是否適應展廳項目?

基本上這個項目相當小,2個頁面的目標相同:顯示項目或視頻列表。 無論以某種方式它的形象與描述,另一種是視頻+描述。

我剛剛開始在數據庫上工作,因此我有最後一個Redis版本,使用python(Flask/Tornado),這裏是我的疑慮: 從我對Redis的理解中,您只能擁有一個KEY VALUE架構。

對於工程項目中,可以有這樣的列表:LPUSH listkey keyvalue

我的短期問題: 一旦項目被添加到項目列表中,如果我想改變只有標題,做我必須更新整個值?

我的中期問題: 如果我的陳列室排序選項,讓我們說25元變成第二位,是很難做到在列表中的修改?它是否適用於List?我想如何在那之後找到關鍵的位置?

我對它的看法越多,越覺得它適合我所要做的事情。 我希望是錯的,因爲Redis是如此的快速和'容易'!

回答

1

解決此問題的一種方法是將每個項目/視頻存儲在名稱爲該元素ID的散列鍵中(例如video:123)。請注意,您可以更新散列的單個字段(例如說明)。

要跟蹤元素,請使用排序集,其中成員是元素標識(鍵名稱),其分數反映顯示順序。這樣可以讓您輕鬆控制顯示屏的內容和順序,以及通過設置頁面。

注意:列表是這項任務的數據結構的不好選擇,因爲它們的成員是不可變的,並且搜索它們具有O(N)時間複雜度。

+0

謝謝你Itamar!我認爲哈希創建起來相當複雜。你認爲設置它的平均時間會和mongoDB一樣長(和高效)嗎? –