2017-01-31 117 views
0

我在我的Redis數據存儲中有非常多的密鑰,所有這些密鑰都有任意長的任意十六進制文本的長名稱。如何根據散列中的鍵/值在Redis中查找並添加鍵/值數據到散列?

所有哈希鍵都有一個名爲name的鍵,它有一個值。

當我不知道密鑰的位置時,如何找到具有某個唯一名稱值的散列?(所以我要通過我的所有哈希本的搜索 - 非常糟糕,我知道) - 例如,現場color: blue添加到我有獨特的哈希name: f-377

回答

1

我會建議你創建另外的哈希會包含所有這些具有長名稱映射的唯一值。又名自己的索引。所以你需要創建新的散列,去掉所有存在的鍵並添加字段(每個鍵一個)。未來當您需要創建新密鑰時 - 您需要將新字段添加到索引散列中。 在這個索引中搜索hash - O(1),你可以得到最好的結果。

+0

不幸的是,我不是控制這些數據原始傳播的人。 –

+0

所以這是不好的。搜索所有密鑰非常昂貴 - O(n),沒有其他方法可以比添加新的索引結構更快地找到您請求的對象。如果可能的話,您可以使用Lua腳本https://redis.io/commands/eval與傳播數據的其他人簽署更嚴格的合同。你可以像SQL數據庫中的存儲過程一樣使用它們。 – iMysak

相關問題