2012-10-19 41 views
0

有人可以解释下面的Redis命令是如何让我返回内容的吗?单独的编号行负责什么?Redis命令行语法

1: *3 
2: $4 
3: hget 
4: $21 
5: zc:k:b23_cache_config 
6: $1 
7: d 
8: $5264$5264 

回答

4

该消息格式被称为unified request protocol

星号*表示在此请求中预计有多少个参数。所以,*3是三个参数。

美元符号$表示参数中预计有多少个字节。所以,$1是一个字节。

*<number of arguments> CR LF 
$<number of bytes of argument 1> CR LF 
<argument data> CR LF 
... 
$<number of bytes of argument N> CR LF 
<argument data> CR LF 

从你的例子原始消息看起来像:

*3\r\n$4\r\nhget\r\n$21\r\nzc:k:b23_cache_config\r\n$1\r\nd\r\n 

This particular request将返回一个bulk reply response,它看起来像:

$<number of bytes> CR LF 
<DATA> CR LF 

如果请求的键不存在,答复将是:

$-1 
+0

'd'参数在hget命令中代表什么?查阅了文档,但找不到任何参考。 – user1059595

+1

'zc:k:b23_cache_config'是一个[hash](http://redis.io/topics/data-types#hashes),并且在那个散列中有一个'd'字段。 'hget'命令正在请求与散列'zc:k:b23_cache_config'中的'd'字段相关联的值。 –