数据类型-hash 类型介绍与基本操作 | 学习笔记

简介: 快速学习数据类型-hash 类型介绍与基本操作

开发者学堂课程【Redis 入门到精通(基础篇)数据类型-hash 类型介绍与基本操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/764/detail/13376


数据类型-hash 类型介绍与基本操作

 

内容介绍

一、hash 类型

二、Hash 类型数据的基本操作

 

一、hash 类型

1. 存储的困惑

对象类数据的存储如果具有较频繁的更新需求操作会显得笨重

image.png

首先看一下我们之前存储的一些问题,这个是之前存储的格式,用 json 的格式储存,取出数据比较简单,但是在修改方面比较笨重,然后使用第一种,对应的值分开算,都是一个对象的数据,进行一个区分,左边是主键,右边是属性,然后把左边合成,右边属性对应相应的值,这样右边呈现了一个存储空间,有点像redis套redis,这种对应的数据还是value,前面的是key,而中间部分,我们则称作字段field,现在我们看到的右边这个结构就是hash,换句话说,现在一个key对应的不仅仅是一个单独的数据,而是一堆数据,而这一堆数据跟我们之前看到的数据是一模一样的,这就是我们所谓的 hash类型。

2、新的存储要求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息,需要的存储结构:一个存储空间保存多个键值对数据

Hash类型:底层使用哈希表结构实现数据存储

image.png

3. Hash 存储结构优化

如果field数量较少,存储结构优化为类数组结构

如果field数量较多,存储结构使用 HahsMap 结构

Redis里面的小型redis,一个存储空间保存多个键值对数据,这就是 hash 的结构。了解了数据类型,那么接下来就是看一下基本操作,类比 Java 的 hashmap 的操作。

一共有三个,一个是添加修改,一个是获取,还有一个删除,用的是 hset,然后数据就都录入进去了,使用getall就可以导出看到所有的数据。

 

二、Hash 类型数据的基本操作

添加/修改数据

hset key field value

获取数据

hget key field

Hgetall  key

删除数据

hdel key field[field2]

添加/修改多个数据

Hmset key field value field2 value

获取多个数据

Hmget key field1 field2

获取哈希表中字段的数量

Hlen key

获取哈希表中是否存在指定的字段

Hexists key field

一次性操作多个,直接进行验证,要区分清楚纯数值,还是字符,然后在操作时,如果已经有了这个 field,那么就进行修改,如果没有,那就添加上去,符合我们的认知规律,hlen 跟 hexists 进行一个简单的测试,很明显一目了然。

相关文章
|
6月前
|
XML 存储 前端开发
免费在线图片转Base64编码工具
利用图片转 Base64 编码工具(支持 PNG, GIF, JPEG 等格式)。操作极其简单:将目标图片拖拽至工具指定区域,即可自动完成转换并获得编码结果。
1640 3
|
存储 安全 Java
ArrayBlockingQueue 和 LinkedBlockingQueue 有什么区别?
ArrayBlockingQueue 和 LinkedBlockingQueue 有什么区别?
|
存储 算法 数据挖掘
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
本文介绍了2023年中国高校大数据挑战赛赛题B的Python实现方法,该赛题涉及DNA存储技术中的序列聚类与比对问题,包括错误率分析、序列聚类、拷贝数分布图的绘制以及比对模型的开发。
371 2
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
|
druid Java 数据库连接
SpringBoot原理分析 | Spring Data整合:JDBC、Druid、Mybatis
SpringBoot原理分析 | Spring Data整合:JDBC、Druid、Mybatis
387 0
|
5月前
|
前端开发
给elmentui中的el-table-column 添加背景色怎么加
本示例通过自定义 ECharts 图例的 `formatter` 函数,实现在图例中同时显示名称、数值和百分比。代码中还优化了图例布局和饼图标签样式,使数据展示更清晰直观。
571 0
|
7月前
|
SQL XML Java
菜鸟之路Day33一一Mybatis入门
本文是《菜鸟之路Day33——Mybatis入门》的教程,作者blue于2025年5月18日撰写。文章介绍了MyBatis作为一款优秀的持久层框架,如何简化JDBC开发。通过创建SpringBoot工程、数据库表`user`及实体类`User`,引入MyBatis依赖并配置数据库连接信息,使用注解方式编写SQL语句实现查询所有用户数据的功能。此外,还展示了如何通过Lombok优化实体类代码,减少冗余的getter/setter等方法,提高开发效率。最后通过单元测试验证功能的正确性。
285 19
|
存储 运维 负载均衡
智能存储解决方案:探索 TDengine 的多级存储功能
在当今数据驱动的时代,如何高效地存储和管理海量数据已成为企业面临的一大挑战。为了应对这一需求,TDengine Enterprise 不仅支持使用对象存储(S3),还早已引入了独特的多级存储功能。这一功能不仅能够降低存储成本,还能显著提升数据写入性能,并简化系统维护流程。
236 2
|
自然语言处理 API 数据处理
惊了!浏览器居然自带语音API和流处理API!
惊了!浏览器居然自带语音API和流处理API!
302 0
|
前端开发 JavaScript
前端 JS 经典:Math 常用方法汇总
前端 JS 经典:Math 常用方法汇总
247 0