通过cli获取redis哈希数据

时间:2015-02-25 11:00:38

标签: redis

我今天一直在尝试使用Redis。我已设法存储Drupal的缓存值,但我希望进一步调查并查看存储在cache_my_custom_cache中的值..

127.0.0.1:6379> keys *
 1) "ff3169bd93659dc31322abc32835ef3e:cache_bootstrap:lookup_cache"
 2) "ff3169bd93659dc31322abc32835ef3e:cache_bootstrap:module_implements"
 3) "ff3169bd93659dc31322abc32835ef3e:cache_bootstrap:bootstrap_modules"
 4) "ff3169bd93659dc31322abc32835ef3e:cache_bootstrap:system_list"
 5) "ff3169bd93659dc31322abc32835ef3e:cache_bootstrap:variables"
 6) "ff3169bd93659dc31322abc32835ef3e:path:a:und"
 7) "myhash"
 8) "ff3169bd93659dc31322abc32835ef3e:path:s:und"
 9) "ff3169bd93659dc31322abc32835ef3e:cache_my_custom_cache:custom_cache_markup"
10) "ff3169bd93659dc31322abc32835ef3e:cache_bootstrap:hook_info"
127.0.0.1:6379> type ff3169bd93659dc31322abc32835ef3e:cache_my_custom_cache:custom_cache_markup
hash
  • 这显示了它的类型哈希..但是当我运行时:
127.0.0.1:6379> HGET ff3169bd93659dc31322abc32835ef3e:cache_qbe:qbe_markup
(error) ERR wrong number of arguments for 'hget' command

它不喜欢它!完全是新手,有人可以提供解决方案吗?

2 个答案:

答案 0 :(得分:2)

除了密钥之外,您还需要在HGET命令中指定字段。

要获取散列中所有字段的列表,您可以运行此命令:

hkeys ff3169bd93659dc31322abc32835ef3e:cache_my_custom_cache:custom_cache_markup

然后你可以这样做:

hget ff3169bd93659dc31322abc32835ef3e:cache_my_custom_cache:custom_cache_markup FIELD

您还可以像这样获取哈希值中的所有值:

hvals ff3169bd93659dc31322abc32835ef3e:cache_my_custom_cache:custom_cache_markup

答案 1 :(得分:1)

HGET在密钥名称后面需要一个额外的参数,用于枚举您想要返回的哈希字段。像这样:

HGET my_hash_key my_hash_field

如果您尝试一次性检索哈希的所有字段,则应使用HGETALL

HGETALL my_hash_key

HGET的文档:here

HGETALL的文档:here

讨论Redis类型(包括哈希):here