redis-hash类型基本命令
redis存储数据的value可以是hash类型的,也称之为hash表,字典等。hash表就是一个map,由key-value组成。
我们把hash表的key称为field,值称为value。注意:redis的hash表的field和value都为stirng类型
1.hset和hget命令
格式: HSET key field value[field value field value field value ......]
功能:向指定hash表key中添加指定的field和value,没有会新建一个hash表。
说明:如果指定的hash表没有指定的field就是新增,有就是覆盖。有几个新增的field返回几,有覆盖的field返回0。如果指定的key不是hash类型的会报错。

**2.hget命令 **
格式:HGET key field
功能:返回指定hash表中指定field的value
说明:只能指定一个field,指定多个会报错,当不存在指定的field的时候返回nil。

3.hmset命令
格式: HMSET key field value [field value field value field value ......]
功能:和hset命令一样
说明:该命令执行成功返回OK(无论新增成功还是覆盖成功)。

4.hmget命令
格式:HMGET key field [field field ......]
功能:返回指定hash表中指定field的value。
说明:可以指定多个field,当不存在指定的field的时候返回nil。

5.hgetall命令
格式:HGETALL key
功能:返回指定的hash表的所有field和value

6.hsetnx命令
格式:HSETNX key field value
功能:和string类型的setnx命令一致。
说明:只能指定一个field value,执行成功返回1,执行失败返回0。

7.hdel命令
格式:HDEL key field [field field field ......]
功能:删除指定hash表中的field
说明:成功删除几个返回几,删除不存在的field会返回0。

8.hexists命令
格式:HEXISTS key field
功能:判断指定的field是否存在于指定的hash表中。
说明:存在返回1,不存在返回0。

9.hincrby和hincrbyfloat命令
格式:HINCRBY(HINCRBYFLOAT) key field int(float)
功能:和incrby和incrbyfloat命令一致。

10.hkeys和hvals命令
格式: HKEYS(HVALS) key
功能:返回指定的hash表中所有的field或者value
说明:当hash表不存在时,返回一个空表

11.hlen命令
格式:HLEN key
功能:返回指定hash表中field的数量。
说明:如果没有指定的hash表返回0。

12.hstrlen命令
格式:HSTRLEN key field
功能:返回指定的hash表中的field的value的长度。
说明:如果指定的hahs表中没有指定的field返回0。

应用场景
hash类型参数非常适合存储对象数据,key存储对象名称,value为存储对象属性的map,对对象属性的修改可直接再redis中完成,如果使用string类型的参数进行存储,
必须先对对象属性序列化,比如序列化成json串,对对象属性的修改需要先反序列化为对象之后在修改,然后再序列化为json串写入redis中。
浙公网安备 33010602011771号