2012-01-24 60 views
1

我通過Redis-py客戶端將鍵值對存儲在Redis數據庫中。所有密鑰都是唯一的,沒有重複。這裏有一個例子:在redis中存儲帶或不帶散列值的鍵值對

key = 133735570 
value = {"key":133735570,"value":[[141565041,1.2],[22592300,1.0],[162439394,1.0],[19397942,1.0],[79996146,1.0],[84352985,1.0],[123276403,1.0],[18356816,1.0],[113839687,1.0],[16235789,1.0],[144779115,1.0],[94628304,1.0],[134973120,1.0],[138501363,1.0],[34351681,1.0],[80202522,1.0],[81561595,1.0],[18913677,1.0],[130488590,1.0],[128208311,1.0],[93912155,0.5]]} 

會增加一個哈希(相同鍵名)提高性能?例如,

key = 133735570 
hash = 133735570 
value = {"key":133735570,"value":[[141565041,1.2],[22592300,1.0],[162439394,1.0],[19397942,1.0],[79996146,1.0],[84352985,1.0],[123276403,1.0],[18356816,1.0],[113839687,1.0],[16235789,1.0],[144779115,1.0],[94628304,1.0],[134973120,1.0],[138501363,1.0],[34351681,1.0],[80202522,1.0],[81561595,1.0],[18913677,1.0],[130488590,1.0],[128208311,1.0],[93912155,0.5]]} 

我的要求是查找關鍵字,以便從中檢索相應的值。

回答

0

可以嘗試​​3210數據結構內存儲你的鍵 - 值對(在您的示例值部分)(其中的雙關鍵部分將被存儲爲散列字段和值部分作爲散列值;檢查出HMSET),其對於數據操作更爲靈活,並且可能比普通值字符串更容易consume less memory

+0

因此,我應該做的redisObject.hmset(鍵,值),而不是當前的redisObject.hset(鍵,鍵,值)?注意:有*無*重複鍵。它仍然有助於提高記憶效率嗎? – Dexter

+0

哦,你已經在使用哈希了? HMSET允許您在一次操作中將多個字段/值對設置爲散列值。根據文章,它應該是有記憶效率的,但只有一種方法可以肯定,所以你可能會嘗試一下。 – yojimbo87