redis命令解析之hash类型

号外号外,新建Redis交流讨论群:332160890,欢迎加入!!

哈希类型的两种编码方式OBJ_ENCODING_HTOBJ_ENCODING_ZIPLIST

1hsetCommand(client *c)

使用:HSET  key field  value

说明如果key对应的哈希表不存在则创建一个然后再在该哈希表中插入field=> value键值对如果该field之前有对应值则替换这个命令实现中因为是写操作会考虑是否将ZIPLIST编码修改为HT编码

2hsetnxCommand(client  *c)

使用:HSETNX  key field  value

说明HSET不同的时候如果域field对应的数据已存在则不进行任何操作

3hmsetCommand(client *c)

使用:HMSET  key filed value [field value …]

扫描二维码关注公众号,回复: 1891186 查看本文章

说明同时将多个filed->value对设置到key对应的哈希表中,如果key对应的哈希表不存在,则新创建一个

4、hincrbyCommand(client  *c)

使用:HINCRBY  key field  increment

说明key对应的哈希表中field对应的value加上增量increment(可正可负),超出范围则返回,如果field当前不存在,则默认原来的value0

5、hincrbyfloatCommand(client *c)

使用:HINCRBYFLOAT  key field  float

说明:与HINCRBY类似,只是针对的是浮点型,这里面有一点有意思,就是同步到AOF或者SLAVE节点时不是传递该函数,而是直接使用HSET设置加减后的数据,避免浮点型带来的数据不一致

6hgetCommand(client *c)

使用:HGET  key field

说明获取key对应的哈希表中field对应的value

7hmgetCommand(client *c)

使用:HMGET  key field [field …]

说明:获取key对应的哈希表中多个field对应的value值,可能有的存在有的不存在

8hdelCommand(client *c)

使用:HDEL  key field [field …]

说明:删除key对应的哈希表中若干个field的数据,如果剩下的哈希表空了的话,删除该key对应的哈希表

9hlenCommand(client *c)

使用:HLEN  key

说明:返回key对应的哈希表中field的数目,不存在返回0

10hstrlenCommand(client *c)

使用:HSTRLEN  key  filed

说明返回key对应的哈希表field对应的value的长度

11hkeysCommand(client *c)

使用:HKEYS  key

说明:获取key对应的哈希表中所有的field

12hvalsCommand(client *c)

使用:HVALS  key

说明:获取key对应的哈希表中所有field对应的value

13hgetallCommand(client *c)

使用:HGETALL  key

说明:获取key对应的哈希表中所有的field => value信息

14hexistsCommand(client *c)

使用:HEXISTS  key field

说明:返回keyfield是否存在数据的信息

15hscanCommand(client *c)

使用:HSCAN  key cursor  [MATCH pattern] [COUNTcount]

说明:增量式浏览,支持限制数量以及模式匹配,具体详见SCAN


猜你喜欢

转载自blog.csdn.net/fusan2004/article/details/65937875