Redis-五大数据类型-Hash(哈希)

五大数据类型-Hash(哈希)


简介

Hash是一个键值对的集合。

Hash 是一个 String 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

Hash 是 Redis 中出现最为频繁的复合型数据结构,除了 dict 结构的数据会用到Hash外,整个 Redis 数据 库的所有 key 和 value 也组成了一个全局Hash,还有带过期时间的 key 集合也是一个Hash。set集合相 当于一个value为null的Hash,zset 集合中存储 value 和 score 值的映射关系也是通过 hash 结构实现 的。

每个 Hash 可以存储 2^32 - 1 键值对(40多亿)

在这里插入图片描述

常用命令

  1. hset key field value给key集合中的field赋值value。

    如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。

    如果字段已经存在于哈希表中,旧值将被重写。

    hset user name czx	创建一个key为user的哈希,并创建name字段,给name字段赋值为cxz
    hset user age 22	在key为user的哈希中,创建age字段赋值为22
    hset user name tuzhon	将key为user的哈希name字段修改为tuzhon
    

    在这里插入图片描述

  2. hget key field从key哈希中,取出field字段的值。

    hget user name	从key为user的哈希中取出name字段的值,结果为tuzhon
    

    在这里插入图片描述

  3. hmset key field1 value1 field2 value2……批量设置哈希的字段及值。

    hmset user1 name cxz age 15	创建一个key为user1的哈希,有两个字段name和age
    

    在这里插入图片描述

  4. hsetnx key field value 给key哈希表中不存在的的字段赋值 。

    如果哈希表不存在,一个新的哈希表被创建并进行 hsetnx 操作。

    如果字段已经存在于哈希表中,操作无效。

    如果 key 不存在,一个新哈希表被创建并执行 hsetnx 命令。

    hsetnx user name cxz	已经存在显示0,设置失败
    hsetnx user2 name cxz	显示1,设置成功
    

    在这里插入图片描述

    在这里插入图片描述

  5. hexists key field 判断指定key中是否存在field

    如果哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0 。

    hexists user name	
    

    在这里插入图片描述

  6. hkeys key获取该哈希中所有的field。

    hkeys user
    

    在这里插入图片描述

  7. hvals key获取该哈希中所有的value。

    hvals user
    

    在这里插入图片描述

  8. hincrby key field increment为哈希表key中的field字段的值加上增量increment。

    增量也可以为负数,相当于对指定字段进行减法操作。

    如果哈希表的 key 不存在,一个新的哈希表被创建并执行 hincrby 命令。

    如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。

    对一个储存字符串值的字段执行 hincrby 命令将造成一个错误。

    hincrby user age 10
    hincrby user age -5
    hincrby user age -30
    

    在这里插入图片描述

  9. hdel key field1 field2……删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。

    返回被成功删除字段的数量,不包括被忽略的字段。

    hdel user name age	删除user中的name和age字段
    

    在这里插入图片描述

  10. hgetall key获取在哈希表中指定 key 的所有字段和值

    hgetall user1
    

    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

途中刂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值