【Redis】基本数据类型常用操作 - 哈希Hash

简介: 【Redis】基本数据类型常用操作 - 哈希Hash

redis里的hash是一个string类型的field(字段)和value(值)的映射表。特别适合用于存储对象,每个hash可以存储40多亿键值对。


熟悉python的童鞋可以想象成字典dict。之前的数据类型存储都是k-v这样,而hash的存储就是k-dictdict里又会有属于自己的k-v


一、hset


为哈希表中的字段赋值,如果哈希表不存在,创建一个新的哈希表被并进行hset操作。

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


hset myhash k1 v1


1268169-20210617081138629-164441086.png


二、hget


返回哈希表中指定字段的值,如果给定的字段或 key 不存在时,返回 nil。


hget myhash k1


1268169-20210617081255640-371981579.png


三、hmset


同时将多个 field-value 对设置到哈希表中。


hmset myhash k2 v2 k3 v3


如果哈希表中已存在的字段,则覆盖。


如果哈希表不存在,会创建一个空哈希表,并执行hset操作。


1268169-20210617081608356-133144098.png


四、hmget


返回哈希表中,一个或多个给定字段的值。


hmget myhash k1 k2 k3 k4


如果指定的字段不存在于哈希表,那么返回一个nil值。


1268169-20210617081950430-163327506.png


五、hgetall


返回哈希表中,所有的字段和值。


hgetall myhash


注意,在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍。


1268169-20210617081950430-163327506.png


六、hdel


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


hdel myhash k2 k3 k5


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


1268169-20210617082216731-1952107929.png


七、hlen


获取哈希表中字段的数量。


hlen myhash


1268169-20210617082406110-1505028150.png


八、hexists


查看哈希表的指定字段是否存在。


hexists myhash k1


如果哈希表含有给定字段,返回 1。


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


1268169-20210617082644206-1112354118.png


九、hkeys


获取哈希表中的所有字段(field)。


hkeys myhash


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


1268169-20210617083004469-211524206.png


十、hvals


返回哈希表所有字段(field)的值。


hvals myhash


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


1268169-20210617083201974-329635496.png


十一、hincrby


为哈希表中的字段值加上指定增量值,这个增量也可以是负数,相当于减法。

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


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


若对储存字符串值的字段执行,会报错。


1268169-20210617122853576-1909530953.png


十二、hsetnx


为哈希表中不存在的的字段赋值。


若哈希表不存在,创建新的哈希表并进行 hset 操作。


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


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


1268169-20210617123236700-1747221045.png


关于redis中hash的应用,比如保存用户信息数据、经常变动的信息,如果不想使用传统的k-v对象去存储,可以用redis的hash。

相关文章
|
7月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
775 6
|
10月前
|
存储 NoSQL 定位技术
Redis数据类型面试给分情况
Redis常见数据类型包括:string、hash、list、set、zset(有序集合)。此外还包含高级结构如bitmap、hyperloglog、geo。不同场景可选用合适类型,如库存用string,对象存hash,列表用list,去重场景用set,排行用zset,签到用bitmap,统计访问量用hyperloglog,地理位置用geo。
450 5
|
10月前
|
NoSQL Java Redis
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
749 2
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
587 85
|
存储 缓存 NoSQL
Redis哈希结构在提升数据检索速度中的实践应用
本文详细介绍了 Redis 哈希结构的特点、常见使用场景以及如何在实际应用中利用哈希结构提升数据检索速度。通过合理使用 Redis 哈希结构,可以显著提高系统的性能和响应速度。在实际开发中,结合具体业务需求,灵活运用 Redis 提供的多种数据结构,构建高效的缓存和数据存储解决方案。希望本文能帮助您更好地理解和应用 Redis 哈希结构,提升数据检索速度。
478 18
|
NoSQL Redis
Redis的常用数据类型有哪些 ?
Redis 有 5 种基础数据结构,它们分别是:string(字符串)、list(列表)、hash(字典)、set(集 合) 和 zset(有序集合)
|
存储 NoSQL Redis
redis常见数据类型
Redis 是一种基于内存的键值存储数据库,支持字符串、哈希表、列表、集合及有序集合等多种数据类型,每种类型均有特定用途与适用场景,提供丰富的命令操作,适用于高速数据访问与处理。
303 5
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
369 1
|
存储 NoSQL Redis
Redis 哈希(Hash)
10月更文挑战第16天
243 1
|
存储 消息中间件 NoSQL
Redis 数据类型
10月更文挑战第15天
247 1