Redis(九)-Redis的常用数据类型之Hash表

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis hash 是一个键值对集合,

简介

Redis hash 是一个键值对集合,

Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。它类似于Java里面的Map<String,Object>

比如现在需要存储用户信息,用户ID为查找的key,存储的value 用户对象包括姓名,年龄,账号等信息

这里有两种存储方式:

1. 将对象序列化后存储

第一种方式就是将对象序列化成字符串进行存储

这种方式的优点是存储简单,缺点就是当需要修改对象中的某个属性时需要将Redis中拿到的字符串反序列化成该对象,然后修改此对象的值,最后再将修改后的对象序列化后存到Redis中。

2. 存储为hash对象

另外一种方式就是将该对象以hash对象的形式存储到Redis中。通过hash对象的方式存储对象的话,修改单个字段就方便多了。只需要取出需要修改的那个字段的值然后直接进行修改即可。

它实际的存储结构是:


常用命令

<key> 集合中的<field> 键赋值<value>

hset <key> <field> <value>

<key1> 集合<field> 取出value

hget <key1> <field>

批量设置hash的值

hmset <key1> <field> <value1> <field2> <value2> ....

列出指定<key> 的hash集合的所有field

hkeys <key>

查看哈希表key中,给定域field是否存在

hexists <key1> <field> 
  1. 列出指定<key> 的hash集合的所有value
hvals <key>

为哈希表key中的域 field 的值加上增量1,-1

hincrby <key> <field> <increment>

将哈希表key中的域field的值设置为value,当且仅当域field 不存在

hsetnx <key> <field> <value>


数据结构

Hash类型对应的数据结构有两种:ziplist (压缩列表),hashtable (哈希表)。当field-value长度较短且个数较少时,使用ziplist,否则使用hashtable。

详细可以观看此文 Redis(十)-Redis的数据结构之字典

参考

《Redis的设计与实现》

Redis基本类型及其数据结构

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
17天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
159 85
|
3月前
|
存储 NoSQL Java
Redis如何处理Hash冲突?
在 Redis 中,哈希表是一种常见的数据结构,通常用于存储对象的属性,对于哈希表,最常遇到的是哈希冲突,那么,当 Redis遇到Hash冲突会如何处理?这篇文章,我们将详细介绍Redis如何处理哈希冲突,并探讨其性能和实现细节。
88 1
|
1月前
|
存储 NoSQL Redis
redis常见数据类型
Redis 是一种基于内存的键值存储数据库,支持字符串、哈希表、列表、集合及有序集合等多种数据类型,每种类型均有特定用途与适用场景,提供丰富的命令操作,适用于高速数据访问与处理。
45 5
|
2月前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
43 1
|
3月前
|
存储 NoSQL Redis
Redis 哈希(Hash)
10月更文挑战第16天
53 1
|
3月前
|
存储 消息中间件 NoSQL
Redis 数据类型
10月更文挑战第15天
49 1
|
3月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
34 3
|
4月前
|
存储 消息中间件 缓存
深入探析Redis常见数据类型及应用场景
深入探析Redis常见数据类型及应用场景
75 2
|
4月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
5月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)