redis hash类型命令

2023-02-02  本文已影响0人  饱饱想要的灵感

hset

语法:hset key field value [field value ...]

用于为存储在key中的哈希表的field字段赋值value

例子:hset student name baobao age 18 -- 设置key为student但里面存储着name和age字段

hmset

语法:hmset key field value [field value ...]

用于同时将多个field-value(字段-值)对设置到哈希表中。此命令会覆盖哈希表中已存在的字段 注:Redis4.0.0起被废弃,推荐使用hset,它也可以一次性添加多个

hsetnx

语法:hsetnx key field value

用于为存储在key中的哈希表的field字段赋值value;如果当前field存在则添加失败(不可覆盖添加)

hget

语法:hget key field

用于返回哈希表中指定字段field的值 hget student name -- 获取哈希表里的field字段

hmget

语法:hmget key field [field ...]

用于返回哈希表中指定字段field的值;但是可以一次性返回多个field值

例子:hmget student name age -- 获取哈希表里的field多个字段

hdel

语法:hdel key field [field ...]

用于删除哈希表key中的一个或多个指定字段,不存在的字段将被忽略。如果key不存在,会被当作空哈希表处理并返回0

例子:hdel student name -- 删除哈希表中key为student里的name字段

hexists

语法:hexists key field

用于查看哈希表的指定字段field是否存在,1存在,0不存在 hexists student name -- 查看哈希表中key为student里的name字段是否存在

hgetall

语法:hgetall key

用于返回存储在key中的哈希表中所有的field和value。

hkeys

语法:hkeys key

返回存储在key中哈希表的所有field

hvals

语法:hvals key

返回存储在key中哈希表的所有value

hincrby

语法:hincrby key field increment

为哈希表key中的field的值加上指定的增量,并返回增量后的值(增量正数累加,增量负数递减);

当前命令只可操作整数类型,而字符串,浮点类型啥的会报错

例子:

hincrby student age 1       -- 对年龄累加
hincrby student age -20     -- 对年龄递减

hincrbyfloat

语法:hincrbyfloat key field increment

为哈希表key中的field的值加上指定的增量,并返回增量后的值(增量正数累加,增量负数递减)

当前命令只可操作整数类型、浮点类型,而操作字符串会报错

例子:

hincrby student salary 8844.48      -- 对工资累加
hincrby student salary -800.112     -- 对工资递减

hstrlen

语法:hstrlen key field

返回存储在key中给定field相关联的值的字符串长度(string length)

hlen

语法:hlen key

用于获取哈希表中字段(fields)的数量

hscan

语法:hscan key cursor [match pattern] [count count]

用于遍历哈希表中的键值对 cursor:游标(告诉迭代器从哪开始迭代) [match pattern]:过滤筛选条件 [count count]:迭代的个数

需要注意的是count的使用:

  • COUNT 参数的默认值为 10
  • 在迭代一个足够大的、由哈希表实现的数据库、集合键、哈希键或者有序集合键时, 如果用户没有使用 MATCH 选项, 那么命令返回的元素数量通常和 COUNT 选项指定的一样, 或者比 COUNT 选项指定的数量稍多一些。
  • 在迭代一个编码为整数集合(intset,一个只由整数值构成的小集合)、 或者编码为压缩列表(ziplist,由不同值构成的一个小哈希或者一个小有序集合)时, 增量式迭代命令通常会无视 COUNT 选项指定的值, 在第一次迭代就将数据集包含的所有元素都返回给用户。

hscan student 0 match * count 2 -- 迭代student里的field字段,下标0开始,过滤条件*全部,但是因为其编码为压缩列表, 所以countr 2不起作用

上一篇 下一篇

猜你喜欢

热点阅读