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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 快速学习数据类型-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 进行一个简单的测试,很明显一目了然。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
存储 安全 Go
|
13天前
|
开发者
除了交集运算,Set 类型还可以用于哪些数据结构的操作?
【10月更文挑战第30天】`Set`类型在数据结构操作方面提供了丰富的功能和便利,能够帮助开发者更高效地处理各种数据集合相关的任务,提高代码的简洁性和性能。
|
1月前
|
存储 安全
【数据结构】Set的使用与注意事项
【数据结构】Set的使用与注意事项
23 2
|
1月前
|
存储 自然语言处理 安全
【数据结构】Map的使用与注意事项
【数据结构】Map的使用与注意事项
28 1
|
4月前
|
存储 Java
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
|
5月前
|
存储 Java 索引
JavaSE——集合框架一(5/7)-Set系列集合:Set集合的特点、底层原理、哈希表、去重复原理
JavaSE——集合框架一(5/7)-Set系列集合:Set集合的特点、底层原理、哈希表、去重复原理
50 1
|
6月前
|
存储 开发框架 .NET
C#学习相关系列之数据类型---Diactionary字典的用法
C#学习相关系列之数据类型---Diactionary字典的用法
|
存储
ES6中新增的Set、Map两种数据结构怎么理解以及操作方法
Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构
118 0
|
存储 NoSQL Redis
数据类型-set 类型介绍与基本操作| 学习笔记
快速学习数据类型-set 类型介绍与基本操作
数据类型-set 类型介绍与基本操作| 学习笔记
|
存储 NoSQL Redis
数据类型-list 类型介绍与基本操作| 学习笔记
快速学习数据类型-list 类型介绍与基本操作
数据类型-list 类型介绍与基本操作| 学习笔记