前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【地铁上的Redis与C#】数据类型(五)--Hash类型

【地铁上的Redis与C#】数据类型(五)--Hash类型

作者头像
喵叔
发布2023-01-11 10:58:29
4090
发布2023-01-11 10:58:29
举报
文章被收录于专栏:喵叔's 专栏喵叔's 专栏

前面我们学习了数据类型中的string类型,一般来说我们在开发中常用的就是string类型,但是它并不是万能的,string类型存在一个问题,下面我们就通过这问题来引出我们的要学习的新类型hash类型。

存在的问题

对象类数据(例如User、Employee)的存储如果使用string类型存储的话,当出现频繁更新操作的情况下会显得笨重,而且多条数据聚合不方便(例如姓名、出生日期、地址如果要入局)。如果用json的方式存储的话,每次修改一个属性时都需要把整个数据取出来修改。那么我们该怎么办呢 ?我们可以key不变,但是value中按照field:vlaue 的形式存储,其中field是属性名,value是属性值。把这个解决方法转化成图就是这样的:

在这里插入图片描述
在这里插入图片描述

上图这种存储方式就是hash类型的存储方式。

hash类型
  1. 为什么会出现hash类型:因为要对一系列存储的数据进行编组,方便管理,比较典型的应用场景就是存储对象信息。
  2. hash类型的存储结构:一个存储空间保存多个键值对数据,如下图所示:
在这里插入图片描述
在这里插入图片描述
  1. 什么是hash类型:底层使用hash表结构实现存储数据的类型
  2. hash类型所作的存储优化:
  • 当field数据量较少时,存储结构优化为数组结构;
  • 当field数据量较多时,存储结构有华为hashmap结构。
基本操作

在这一小节我们就来讲一下hash类型的基本操作。

  1. 添加/修改数据,使用 hset,语法为haset key field value,例如设置user存储name的值为anna,可以这么写命令hset user name anna
  2. 获取数据,使用hget,语法为hget key field,例如设置获取user中存储的name的值,命令这么写hget user name
  3. 删除数据,使用hdel,语法为hdel key field1 [field2,…,fieldn],例如删除user中的name,命令这么些写hdel user name
  4. 添加修改多个数据,使用hmset,语法为hmset key field1 value1 field2 value2,例如在user中添加name和address,命令这么些写hmset user name anna address XXXX
  5. 获取多个数据,使用hmget,语法为hmget key field1 field2,例如获取user中的name和address的值,命令这么写hmget user name address
  6. 获取哈希表中字段的数量,使用hlen,语法hlen key,例如获取user中的字段数量,命令这么写hlen user
  7. 获取哈希表中是否存在指定的字段,使用hexists,语法hexist key field,例如判断user中是否存在 age字段,命令这么写hexists user age,返回1表示存在该字段,返回0表示不存在
小结

这篇文章稍长,核心内容是hash类型的基本操作命令,同时讲解了string类型存储数据的存在的问题,以及hash类型的简介。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 存在的问题
  • hash类型
  • 基本操作
  • 小结
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档