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不起作用
网友评论