Redis hgetall还是hget?

时间:2017-11-02 09:24:19

标签: redis

有100-200个字段的redis哈希。如果我需要取2或3个值,最好的方法是什么方法?

第一种方式是调用hgetall,但我得到了许多无用的数据。

第二种方式是调用hget key1,hget key2和hgetkey3 - 但是是三种不同的调用。

2 个答案:

答案 0 :(得分:4)

除非您需要整个哈希的内容(请注意其O(N)时间复杂度),否则不要使用HGETALL

您可以使用HMGET命令仅检索Hash中您感兴趣的字段。

请注意,自Redis v4 HMGET起,已弃用并替换为HGET的可变参数。

答案 1 :(得分:0)

您可以使用 HMGEThttps://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