Redis-哈希(Hash)的相关操作

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 哈希,也有的地方叫散列。这种数据格式在工作中还挺常见的,哈希有点类似于编程里面的对象的概念,可以在一个对象里面去定义多组键值对,这多个键值对相当于打包绑定在了一起。

 今天介绍一种新的数据类型-哈希,也有的地方叫散列。这种数据格式在工作中还挺常见的,哈希有点类似于编程里面的对象的概念,可以在一个对象里面去定义多组键值对,这多个键值对相当于打包绑定在了一起。


   在常见的GUI客户端下面查看哈希的数据显示格式:


微信图片_20220114113305.png


哈希常见的操作命令:{key和value只能是字符串类型,不支持再嵌套其他格式数据}

  • HSET    为字段设置值

格式:hset key field value [field value ...]    向名称为 key 的 hash 中添加元素

hset user:libo name libo age 29 phone 13522223033  email 11111@qq.com 
hset user:001 name lico age 23

1、key采用统一的前缀,然后用:区分时,显示的效果会按照前缀进行分组展示

2、使用hset对哈希中单个已存在字段进行覆盖更新时,返回0。


微信图片_20220114113308.png


  •   HSETNX:只在字段不存在的情况下为它设置值

格式:HSETNX hash field value


  • HGET:获取字段的值

格式:hget hash field


微信图片_20220114113311.png



  • HINCRBY:对字段存储的整数值执行加法或者减法的操作

格式:hincrby key field increment


微信图片_20220114113313.png


只能针对整数值进行操作,否则会报错:


微信图片_20220114113316.png


  • HINCRBYFLOAT:对字段存储的数字值(整数/小数都可以)进行浮点数的加减法操作

格式:hincrbyfloat key field increment


微信图片_20220114113318.png


  • HSTRLEN:获取字段值的字节长度

格式:hstrlen key field


  • HEXISTS:检查字段是否存在

格式:hexists key field

hexists user name
  • HDEL:删除字段

格式:hdel key field (可以传多个字段,用空格隔开)

hdel user name
hdel user name1 name2
  • HLEN:获取哈希包含的字段数量

格式:hlen key

hlen user
  • HMSET:一次性为一个/多个字段设置值

格式:hmset key field value [field value ...]

hmset user name libo age 29 phone 17665****50 
  • HMGET:一次获取一个/多个值

格式:hmget key field [field...]


HKEYS:获取所有字段

格式:hkeys key

hkey user
  • HVALS:获取所有值

格式:hvals key


  • HGETALL:获取所有字段和值

格式:hgetall key

hgetall user


微信图片_20220114113321.png


HASH的一些使用场景:

1、购物车的设计

以用户id为key,商品id为field,商品数量为value,恰好构成了购物车的3个要素


哈希这个类型在工作中存储数据经常用到,一些常用的命令要了解一下,避免在工作中用错了。

相关实践学习
基于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
相关文章
|
3月前
|
存储 NoSQL Redis
redis中Hash命令的基础操作
redis中Hash命令的基础操作
39 1
|
3月前
|
NoSQL Java Redis
SpringBoot 配置Redis操作
SpringBoot 配置Redis操作
48 0
|
3月前
|
缓存 NoSQL Java
RedisTemplate操作Redis,这一篇文章就够了
redis是一款开源的Key-Value数据库,运行在内存中,由C语言编写。企业开发通常采用Redis来实现缓存。同类的产品还有memcache 、memcached 等。
225 1
|
22天前
|
存储 NoSQL Java
Redis 数据结构操作入门
Redis 数据结构操作入门
15 0
|
1月前
|
缓存 NoSQL 数据库
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
|
1月前
|
存储 NoSQL Redis
如何在Python中操作Redis数据库
如何在Python中操作Redis数据库
28 0
|
1月前
|
存储 NoSQL Java
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
53 0
|
2月前
|
NoSQL 测试技术 Redis
六步操作教你轻松搭建Redis集群
Redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用。单节点的Redis已经就达到了很高的性能,为了提高可用性我们可以使用Redis集群。本文参考了Rdis的官方文档和使用Redis官方提供的Redis Cluster工具搭建Rdis集群。
40 0
|
2月前
|
NoSQL Java Redis
springboot整合redis过期key监听实现订单过期操作
springboot整合redis过期key监听实现订单过期操作
63 0
|
3月前
|
存储 NoSQL 关系型数据库
深度图解 Redis Hash(散列表)实现原理
深度图解 Redis Hash(散列表)实现原理
41 0

热门文章

最新文章