redis学习-Hash类型相关命令及特殊情况分析

本文详细介绍了Redis中哈希表(Hash)的数据结构和常用操作,如插入、获取、删除、长度检查、判断键值对存在及增量等,解释了为何没有mhset等批量操作的原因。
摘要由CSDN通过智能技术生成

目录

1. hset KEY key1 value1 key2 value2 ...

2. hget KEY key

3. hgetall KEY

4. hmget KEY key1 key2 ...

5. hkeys KEY

6. hvals KEY

7. hdel KEY key1 key2 ...

8. hlen KEY

9. hexists KEY key

10. hincrby KEY key num

11. hsetnx KEY key value


        Hash的内部存储结构相当于一个map,存储的是一个个键值对;所以在redis中相当于

KEY-(key-value)。Hash更适合存储一个对象,或者经常变动的信息。

1. hset KEY key1 value1 key2 value2 ...

        在哈希表中插入键值对,如果该哈希表不存在则会先创建;当哈希表中已经存在要插入的key时则会覆盖。返回值为添加的个数而不是修改的个数。

2. hget KEY key

        获取指定哈希表中指定键值对的value。

3. hgetall KEY

        输出指定哈希表的所有键值对,并按照一行key一行value的顺序输出。

4. hmget KEY key1 key2 ...

        同时执行多次hget操作。

        那为什么没有一次性创建多个哈希表的操作呢,或者为什么不能像String类型有mset的那样有mhset呢?

        理论上当然可以,但实际行不通,因为hset的操作第一个是KEY,后面就是这个KEY的一些键值对了,如果一次创建多个哈希表,那剩下的哈希表信息肯定是放在第一个哈希表的后面,也就是hset KEY1 k1 v1 k2 v2 KEY2 k1 v1 k2 v2... ,这么写肯定是可以区分的,但如果实现起来就无法区分KEY2究竟是另一个哈希表还是KEY1的一个键值对了,所以只有一次创建一个哈希表的操作。

        思维再拓展一下,为什么hmget只能获取一个哈希表的多个键值对呢?这也是因为无法区分后面的内容是另一个哈希表还是这个哈希表的键值对了。

5. hkeys KEY

        只输出一个哈希表的所有key。

6. hvals KEY

        只输出一个哈希表的所有value。

7. hdel KEY key1 key2 ...

        删除指定哈希表中的指定键值对。

8. hlen KEY

        输出指定哈希表的长度。

9. hexists KEY key

        判断一个哈希表中是否存在指定的键值对。

10. hincrby KEY key num

        对一个哈希表中指定键值对的value增加指定步长,当num为负数时代表减少指定步长,hash类型没有对应的hdecrby。执行这个操作要保证对应键值对的value必须是数字。

11. hsetnx KEY key value

        当该哈希表不存在或者指定键值对不存在时才会创建键值对。

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值