回答
您可以在一個請求給您的Redis實例查詢哈希值或在管道的任何按鍵,即。實際實現取決於您的客戶端上,但Redis的-PY它會是這樣的:
pipe = conn.pipeline()
pipe.hgetall('foo')
pipe.hgetall('bar')
pipe.hgetall('zar')
hash1, hash2, hash3 = pipe.execute()
客戶端將發行3個命令一個請求。這與用於一次將多個值添加到集合的技術是相同的。
Redis的具有HMGET命令,該命令與一個命令返回幾個散列密鑰的值。
啊,但是HMGET將返回混凝土領域的多個值,但我需要恢復整個哈希(如HGETALL DO http://code.google.com/p/redis/wiki/HgetallCommand)。無論如何,謝謝你的回答。 – Kirzilla 2010-08-10 10:59:04
凹凸!整個哈希是什麼意思?有了'HMGET'您所查詢鍵的所有值,因爲你已經得到了鑰匙已經,並且每個按鍵都有以相應的值,你可以建立一個本地哈希與代碼中的每一個鍵/值對。請解釋。謝謝。 – Niloct 2011-11-26 00:34:46
如果一個散列在概念上被用來容納一個用戶,那麼HMGET會給你例如帶有指定ID的單個用戶的用戶名和密碼。一個類似於MGET的等價方法可以在給定一組ID的情況下,一次性獲得所有這些用戶的用戶名和密碼。這是不同的。 – majelbstoat 2012-04-06 16:43:43
如果SORT讓你用多用的GET - >語法,和所有的哈希有相同的字段,你可以通過把他們的名字成爲一個集和排序是讓他們在散裝答覆。
SORT names_of_hashes GET *->field1 *->field2 *->field3 *->etc
但它看起來並不像你可以用哈希訪問那樣做。另外你必須把返回列表變成哈希。
UPDATE:Redis的好像讓你獲取多個字段,如果你的名字你哈希很好:
redis> hset hash:1 name fish
(integer) 1
redis> hset hash:2 name donkey
(integer) 1
redis> hset hash:3 name horse
(integer) 1
redis> hset hash:1 type fish
(integer) 1
redis> hset hash:2 type mammal
(integer) 1
redis> hset hash:3 type mammal
(integer) 1
redis> sadd animals 1
(integer) 1
redis> sadd animals 2
(integer) 1
redis> sadd animals 3
(integer) 1
redis> sort animals get # get hash:*->name get hash:*->type
1. "1"
2. "fish"
3. "fish"
4. "2"
5. "donkey"
6. "mammal"
7. "3"
8. "horse"
9. "mammal"
沒有命令這樣做的一個鏡頭,但有一個辦法做到這一點「很好」 ,使用一個列表(或有序集合)來存儲你的hashKeys,然後使用multi將它們作爲批量檢索。
在PHP:
$redis->zAdd("myHashzSet", 1, "myHashKey:1");
$redis->zAdd("myHashzSet", 2, "myHashKey:2");
$redis->zAdd("myHashzSet", 3, "myHashKey:3");
$members = $redis->zRange("myHashzSet", 0, -1);
$redis->multi();
foreach($members as $hashKey) {
$redis->hGetAll($hashKey);
}
$results = $redis->exec();
我使用有序集合,在您使用分數作爲您的哈希值的ID推薦,它可以採取一切得分基於命令的優勢。
沒有MHGETALL
但你可以LUA它:
local r = {}
for _, v in pairs(KEYS) do
r[#r+1] = redis.call('HGETALL', v)
end
return r
- 1. redis - 使用哈希
- 2. 沒有哈希的主幹?
- 3. 刪除基於哈希鍵名散裝Redis的哈希值
- 4. 等效於Memcached中的Redis哈希?
- 5. 骨幹:沒有哈希
- 6. 角$ routeProvider沒有哈希(#)
- 7. 哈希與Redis的Arrrays
- 8. Android Sha1哈希用戶名和密碼沒有正確哈希
- 9. Redis Mget vs獲得
- 10. Redis MGET侷限性
- 11. 通用哈希執行比模哈希差,有什麼不對?
- 12. 篩選Redis哈希條目
- 13. redis-py手錶哈希鍵
- 14. 虛擬屬性沒有移動到參數中的模型哈希
- 15. 沒有鍵名的Perl哈希值
- 16. ubuntu14.04的buildroot沒有哈希發現GCC
- 17. 沒有哈希的骨幹路由?
- 18. 如何從Redis的列表中檢索所有哈希值?
- 19. 在Redis中獲得多個哈希的最有效方法是?
- 20. 「模擬#to_hash應該返回哈希」
- 21. 如何在SQF中模擬哈希表?
- 22. 哈希集沒有返回唯一值
- 23. Python 3:哈希沒有正確生成
- 24. jQuery去哈希沒有重新加載
- 25. cakephp沒有哈希模型中的密碼
- 26. Redis中的哈希上的原子GETSET
- 27. Perl中的哈希和哈希引用有什麼區別?
- 28. 使用嵌套哈希和哈希爲默認值沒有按預期工作
- 29. 如何在Redis中有效地重命名哈希域
- 30. 如何扁平化哈希值Redis的
如果您的問題得到解答,請註明正確的答案。謝謝。 – kmerenkov 2013-02-02 11:42:46