有100-200个字段的redis哈希。如果我需要取2或3个值,最好的方法是什么方法?
第一种方式是调用hgetall,但我得到了许多无用的数据。
第二种方式是调用hget key1,hget key2和hgetkey3 - 但是是三种不同的调用。
答案 0 :(得分:4)
除非您需要整个哈希的内容(请注意其O(N)时间复杂度),否则不要使用HGETALL
。
您可以使用HMGET
命令仅检索Hash中您感兴趣的字段。
请注意,自Redis v4 HMGET
起,已弃用并替换为HGET
的可变参数。
答案 1 :(得分:0)
您可以使用 HMGET
:https://redis.io/commands/hmget
HMGET myhash field1 field2 nofield
在 6.0.5 上测试:
# even 1 field, return an array
redis> HMGET Names n1
0
name1
redis> HGET Names n1
name1
# Cannot accept multiple fields for HGET
redis> HGET Names n1 n2
ERR wrong number of arguments for 'HGET' command
redis> HMGET Names n1 n2
0
name1
1
name2