Redis命令---Hash(哈希)篇 (超全)

这篇具有很好参考价值的文章主要介绍了Redis命令---Hash(哈希)篇 (超全)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Redis Hmset 命令 - 同时将多个 field-value (域-值)对设置到哈希表 key 中。

简介

如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。此命令会覆盖哈希表中已存在的字段。Redis Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN

可用版本: >= 2.0.0

返回值: 如果命令执行成功,返回 OK 。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo" field2 "bar"
OK
redis 127.0.0.1:6379> HGET myhash field1
"foo"
redis 127.0.0.1:6379> HMGET myhash field2
"bar"

2.Redis Hmget 命令 - 获取所有给定字段的值

简介

如果指定的字段不存在于哈希表,那么返回一个 nil 值。Redis Hmget 命令用于返回哈希表中,一个或多个给定字段的值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HMGET KEY_NAME FIELD1...FIELDN

可用版本: >= 2.0.0

返回值: 一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HMGET myhash field1 field2 nofield
1) "foo"
2) "bar"
3) (nil)

3.Redis Hset 命令 - 将哈希表 key 中的字段 field 的值设为 value 。

简介

如果字段已经存在于哈希表中,旧值将被覆盖。如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。Redis Hset 命令用于为哈希表中的字段赋值 。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HSET KEY_NAME FIELD VALUE

可用版本: >= 2.0.0

返回值: 如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
OK
redis 127.0.0.1:6379> HGET myhash field1
"foo"

redis 127.0.0.1:6379> HSET website google "www.g.cn"       # 设置一个新域
(integer) 1

redis 127.0.0.1:6379>HSET website google "www.google.com" # 覆盖一个旧域
(integer) 0

4.Redis Hgetall 命令 - 获取在哈希表中指定 key 的所有字段和值

简介

在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍。Redis Hgetall 命令用于返回哈希表中,所有的字段和值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HGETALL KEY_NAME

可用版本: >= 2.0.0

返回值: 以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"

5.Redis Hget 命令 - 获取存储在哈希表中指定字段的值/td>

简介

Redis Hget 命令用于返回哈希表中指定字段的值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HGET KEY_NAME FIELD_NAME

可用版本: >= 2.0.0

返回值: 返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil 。

示例

# 字段存在

redis> HSET site redis redis.com
(integer) 1

redis> HGET site redis
"redis.com"


# 字段不存在

redis> HGET site mysql
(nil)

6.Redis Hexists 命令 - 查看哈希表 key 中,指定的字段是否存在。

简介

Redis Hexists 命令用于查看哈希表的指定字段是否存在。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HEXISTS KEY_NAME FIELD_NAME

可用版本: >= 2.0.0

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

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HEXISTS myhash field1
(integer) 1
redis 127.0.0.1:6379> HEXISTS myhash field2
(integer) 0

7.Redis Hincrby 命令 - 为哈希表 key 中的指定字段的整数值加上增量 increment 。

简介

本操作的值被限制在 64 位(bit)有符号数字表示之内。对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。增量也可以为负数,相当于对指定字段进行减法操作。Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER

可用版本: >= 2.0.0

返回值: 执行 HINCRBY 命令之后,哈希表中字段的值。

示例

redis 127.0.0.1:6379> HSET myhash field1 20
(integer) 1
redis 127.0.0.1:6379> HINCRBY myhash field 1
(integer) 21
redis 127.0.0.1:6379> HINCRBY myhash field -1
(integer) 20

8.Redis Hlen 命令 - 获取哈希表中字段的数量

简介

Redis Hlen 命令用于获取哈希表中字段的数量。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HLEN KEY_NAME

可用版本: >= 2.0.0

返回值: 哈希表中字段的数量。 当 key 不存在时,返回 0 。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HLEN myhash
(integer) 2

9.Redis Hdel 命令 - 删除一个或多个哈希表字段

简介

Redis Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HDEL KEY_NAME FIELD1.. FIELDN

可用版本: >= 2.0.0

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

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HDEL myhash field1
(integer) 1
redis 127.0.0.1:6379> HDEL myhash field2
(integer) 0

10.Redis Hvals 命令 - 获取哈希表中所有值

简介

Redis Hvals 命令返回哈希表所有字段的值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HVALS KEY_NAME FIELD VALUE

可用版本: >= 2.0.0

返回值: 一个包含哈希表中所有值的表。 当 key 不存在时,返回一个空表。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HVALS myhash
1) "foo"
2) "bar"

# 空哈希表/不存在的key

redis 127.0.0.1:6379> EXISTS not_exists
(integer) 0

redis 127.0.0.1:6379> HVALS not_exists
(empty list or set)

11.Redis Hincrbyfloat 命令 - 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

简介

如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。Redis Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HINCRBYFLOAT KEY_NAME FIELD_NAME INCR_BY_NUMBER

可用版本: >= 2.6.0

返回值: 执行 Hincrbyfloat 命令之后,哈希表中字段的值。

示例

redis 127.0.0.1:6379> HSET myhash field 20.50
(integer) 1
redis 127.0.0.1:6379> HINCRBYFLOAT mykey field 0.1
"20.60"

12.Redis Hkeys 命令 - 获取所有哈希表中的字段

简介

Redis Hkeys 命令用于获取哈希表中的所有字段名。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HKEYS KEY_NAME FIELD_NAME INCR_BY_NUMBER

可用版本: >= 2.0.0

返回值: 包含哈希表中所有字段的列表。 当 key 不存在时,返回一个空列表。

示例

redis 127.0.0.1:6379> HSET myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSET myhash field2 "bar"
(integer) 1
redis 127.0.0.1:6379> HKEYS myhash
1) "field1"
2) "field2"

13.Redis Hsetnx 命令 - 只有在字段 field 不存在时,设置哈希表字段的值。

简介

如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。如果字段已经存在于哈希表中,操作无效。如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。Redis Hsetnx 命令用于为哈希表中不存在的的字段赋值 。Redis 哈希(Hash)

语法

redis 127.0.0.1:6379> HSETNX KEY_NAME FIELD VALUE

可用版本: >= 2.0.0

返回值: 设置成功,返回 1 。 如果给定字段已经存在且没有操作被执行,返回 0 。

示例

redis 127.0.0.1:6379> HSETNX myhash field1 "foo"
(integer) 1
redis 127.0.0.1:6379> HSETNX myhash field1 "bar"
(integer) 0
redis 127.0.0.1:6379> HGET myhash field1
"foo"

redis 127.0.0.1:6379> HSETNX nosql key-value-store redis
(integer) 1

redis 127.0.0.1:6379> HSETNX nosql key-value-store redis       # 操作无效, key-value-store 已存在
(integer) 0

总结

redis hmget,Redis,redis,哈希算法,数据库

往期回顾
Redis命令—String篇 (超全)
Redis命令—key篇 (超全)
文章来源地址https://www.toymoban.com/news/detail-827172.html

到了这里,关于Redis命令---Hash(哈希)篇 (超全)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Redis】Hash 哈希内部编码方式

    哈希的内部编码有两种: ziplist(压缩列表):当哈希类型元素个数⼩于hash-max-ziplist-entries配置(默认512个)、同时所有值都⼩于hash-max-ziplist-value配置(默认64字节)时,Redis会使⽤ziplist作为哈希的内部实现,ziplist使⽤更加紧凑的结构实现多个元素的连续存储,所以在节省内

    2024年02月07日
    浏览(35)
  • Redis数据类型-Hash哈希存储类型

    小白:伟哥,java中的Map集合类型在Redis中有对应的存储吗? 伟哥:有的,我带你撸一波。 Redis的hash哈希存储类型,类似于是java中的map存储结构,适合用来存储对象,每个哈希最多可以存储4294967295(2^32-1)个字段值对,具体数量实际上也受Redis部署的虚拟机上的总内存的限制

    2024年02月12日
    浏览(32)
  • redis Hash类型命令

    Redis中的Hash类型有多个常用命令可用于对Hash键进行操作。以下是一些常见的Redis Hash类型命令: HSET:设置Hash字段的值。 它将指定字段与相应的值关联起来,如果字段已经存在,则更新其值,如果字段不存在,则创建一个新的字段并设置值。 具体的命令语法如下: 其中,

    2024年02月13日
    浏览(24)
  • Redis Redis的数据结构 - 通用命令 - String类型命令 - Hash类型命令

    目录 Redis的数据结构: Redis命令: 通用命令:(通用指令是部分数据类型的,都可以使用的指令) KEYS查询命令: DEL删除命令: EXISTS判断命令: EXPIPE有效期设置命令: TTL查看剩余期限命令: String类型: String的3种类型: String类型的常见命令: SET插入数据命令: MSET多重插

    2024年02月09日
    浏览(35)
  • redis命令之hash类型操作命令

    目录 1、添加、查询、删除指令  2、hlen 3、hexists 4、获取字段/获取值 5、字段对应值的增加/减少 6、 hsetnx 7、hash类型使用案例 hash类型介绍:KV模式不变,但V是一个键值对,类似java中的map集合嵌套:MapString, MapObject, Object 1、添加、查询、删除指令         (1)hset        

    2024年02月05日
    浏览(34)
  • Redis扩容与一致性Hash算法解析

    作者:zhaokk 在分布式系统中,随着数据量的增加和负载的变化,对于存储系统的扩容变得尤为重要。Redis作为一种高性能的内存数据库,其在扩容方面采用了一致性Hash算法,以实现无缝的数据分布和负载均衡。本篇博客将详细探讨Redis的扩容机制,同时深入解析一致性Hash算法

    2024年02月12日
    浏览(40)
  • Redis 数据类型及其常用命令一(string、list、set、zset、hash)

    1、简介         Redis 的常用数据类型有十种,分别为:string、list、set、zset、hash、geo、hyperloglog、bitmap、bitfield、stream。熟练使用各种数据类型,能够快速结合场景进行使用。 注:我们所说的数据类型是指 value 的数据类型,key 都是字符串。 所有类型的命令查看:help @数据类

    2024年03月13日
    浏览(47)
  • Redis 原理缓存过期、一致性hash、雪崩、穿透、并发、布隆、缓存更新策略、缓存数据库一致性

    redis的过期策略可以通过配置文件进行配置 redis会把设置了过期时间的key放在单独的字典中,定时遍历来删除到期的key。 1).每100ms从过期字典中 随机挑选20个,把其中过期的key删除; 2).如果过期的key占比超过1/4,重复步骤1 为了保证不会循环过度,导致卡顿,扫描时间上限

    2024年02月08日
    浏览(43)
  • Redis扩容机制与一致性哈希算法解析

    在分布式系统设计中,Redis是一个备受欢迎的内存数据库,而一致性哈希算法则是分布式系统中常用的数据分片和负载均衡技术。本文将深入探讨Redis的扩容机制以及一致性哈希算法的原理,同时提供示例代码以帮助读者更好地理解这两个重要概念。 Redis是一种高性能的内存数

    2024年02月11日
    浏览(38)
  • Redis 数据库的概念、常用命令

    1、关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。 主流的关系型数据库包括 Oracle、MySQL、S

    2024年02月12日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包