数据库 二月 24, 2020

Redis 哈希(hash)命令

Words count 4.2k Reading time 4 mins. Read count 1000000

Redis 哈希(hash)命令

前言

大概浏览了一下Redis中哈希Hash命令,发现当你对前边的字符串String,列表List和集合Set命令掌握的八九不离十的情况下,哈希Hash还是挺简单的。废话不多说,我们这就开始。我们从最基础的开始。

基础命令

HSet

HSetHash Set的缩写。这个命令将哈希表key中的字段field的值设为value。其命令为:HSet key field value。需要说明的是,这个命令在哈希表存在的时候,会将field字段的值设置为value。当哈希表不存在的时候,首先初始化一个哈希表,然后再执行HSet操作。返回值:

  • 如果字段是在哈希表中新建的字段并且值设置成功,则返回1
  • 如果该字段已经存在于哈希表中,并且字段的原值成功被新值覆盖,则返回0

HGet

HGetHash Get的缩写。这个命令用来读取哈希表中指定的字段值。如果哈希表中不存在该字段,则返回nil

HGet相似,存在一个命令,用来判断指定的字段是否存在于哈希表中,这个命令就是HExists

HExists

HExistsHash Exists的缩写,用来判断指定的字段是否存在于哈希表中。其命令为:HExists key field。其返回值表示如下:

  • 0 -> 哈希表中不存在指定的字段,或者key不存在
  • 1-> 哈希表中存在指定的字段。

HLen

HLenHash Len的缩写,用来获取哈希表中字段的数量。其命令为:HLen key。返回值为哈希表中字段的数量。当key不存在的时候,返回0

HDel

HDelHash Del的缩写,用来删除哈希表中一个或者多个指定的字段,如果指定的字段不存在于哈希表中。那么,这个字段将会被忽略。其命令为:HDel key field1 … fieldN。返回值为被成功删除的字段。

升级命令

我们已经大致上了解了Redis中对哈希操作的一些基础命令。那么现在就让我们先更多的了解一下稍微高级的命令吧。

HMSet

HMSetHash Multi Set的缩写,这个命令可以将多个field-value对设置到哈希表中。有了这个命令,就可以让我们多次调用HSet来给哈希表赋值了。其命令为:HMSet key field1 value1 ... fieldN valueN。如果命令执行成功,返回OK。

HMGet

HMGetHash Multi Get的缩写,这个命令可以同时获取哈希表中的多个字段的值,其最后的返回值和字段是相对应的,如果某个字段在哈希表中不存在,则该字段对应的返回值为nil。其命令:HMGet key field1 … fieldN

HGetAll

HGetAllHash Get All的缩写。这个命令用来获取哈希表中的所有字段和所有的值,其返回格式也是一一对应的,一个字段后跟着一个值。命令很简单:HGetAll key。返回值是以列表形式存在的。

HKeys

HKeysHash Keys的缩写。这个命令可以获取哈希表中的所有字段名。其命令为:HKeys key。返回值为一个包含哈希表中所有字段的列表。

HVals

HValsHash Values的缩写。这个命令是和HKeys相对应的命令,用来获取哈希表中的所有字段值。其命令为:HVals key。返回值为一个包好哈希表中所有字段值的列表。

HSetNX

HSetNXHash Set if Not Exists的缩写。其命令是用来创建哈希表中的字段值,当字段已经存在哈希表中的时候,不会执行操作。设置成功,返回1,否则返回0

HIncrBy

HIncrByHash Increment By的缩写,其命令用来为哈希表中某个字段的整数值增加某个量。其命令为:HIncrBy key field number。此增量可为正数,也可为负数。当为负数的时候,相当于从原值减去此值。如果指定的字段不存在,则默认此字段为0.返回值为执行命令后,哈希表中该字段的值。

HIncrByFloat

HIncrByFloatHash Increment By Float的缩写。命令为:HIncrByFloat key field number。和HIncrBy的区别在于number值可是小数。

总结

了解完了Redis中的哈希表,我们就已经了解了Redis中五种数据结构中的四种(StringListSetHash)。最后剩下的就只有有序集合Sorted Set了。让我们明天再一起了解一下吧。

0%