美文网首页
redis hash类型命令

redis hash类型命令

作者: 饱饱想要灵感 | 来源:发表于2023-02-02 18:57 被阅读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不起作用

    相关文章

      网友评论

          本文标题:redis hash类型命令

          本文链接:https://www.haomeiwen.com/subject/mihghdtx.html