首页 > SQL学习 > Redis的哈希表操作命令
2019
08-13

Redis的哈希表操作命令

hash是多个键值(key=>value)对集合,每个hash可以存储2^32-1个键值对(4294967295)

设置命令:

hmset key field value [field value ...]:同时将多个field-value(域-值)对设置到哈希表key中。

    会覆盖哈希表中已存在的域
    key不存在会创建一个新的空哈希表并执行hmset操作
    如果命令执行成功返回OK;当key不是哈希表(hash)类型时,返回一个错误

hset key field value:将key中的域field的值设为value

    key不存在会创建一个新的空哈希表并进行hset操作
    域field已经存旧值将被覆盖
    如果field不存在,新建域并且设置值成功,返回1,如果field已经存在且旧值已被新值覆盖返回0

hsetnx key field value

    当且仅当域field不存在时在key中新增域field并设定值为value,若域field已存在,该操作无效
    key不存在会创建一个新的空哈希表并进行hsetnx命令
    设置成功,返回1,如果field已经存在且没有操作被执行返回0

获取命令:

hmget key field [field ...]:返回key中一个或多个给定域的值。

    如果给定的域不存在于哈希表,那么返回一个 nil 值
    key不存在被当作一个空哈希表来处理,所以将返回一个只带有nil值的表

hget key field:返回key中给定域field的值,当给定域field或key不存在时返回nil

hgetall key:返回key中所有的域和对应的值,在返回值里,紧跟每个域名(field name)之后是域的值(value),若key不存在,返回空列表。

hkeys key:返回一个包含哈希表中所有域的表,key不存在返回一个空表

hvals key:返回key中所有域的值,key不存在时返回一个空表

其他命令:

hexists key field:查看key中域field是否存在。存在返回1,key或者key中的field不存在返回0

hdel key field [field ...]:删除key中一个或多个指定域,不存在的域将被忽略。返回被成功移除的域的数量

hlen key:返回哈key中域的数量。key不存返回0

hincrby key field increment:为key中的域field的值加上增量increment(可以为负数)

    如果域field不存在,将创建域并且域值初始化为0,然后执行操作
    如果key不存在,将创建一个新的哈希表并执行操作
    对一个储存字符串值的域field执行将造成一个错误
    返回执行hincrby命令之后,哈希表key中域field的值

hincrbyfloat key field increment:为key中的域field加上浮点数增量 increment

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。