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基本类型及其数据结构

相关文章
|
3月前
|
存储 NoSQL 定位技术
Redis数据类型面试给分情况
Redis常见数据类型包括:string、hash、list、set、zset(有序集合)。此外还包含高级结构如bitmap、hyperloglog、geo。不同场景可选用合适类型,如库存用string,对象存hash,列表用list,去重场景用set,排行用zset,签到用bitmap,统计访问量用hyperloglog,地理位置用geo。
89 5
|
3月前
|
NoSQL Java Redis
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
384 2
|
12月前
|
存储 NoSQL Java
Redis如何处理Hash冲突?
在 Redis 中,哈希表是一种常见的数据结构,通常用于存储对象的属性,对于哈希表,最常遇到的是哈希冲突,那么,当 Redis遇到Hash冲突会如何处理?这篇文章,我们将详细介绍Redis如何处理哈希冲突,并探讨其性能和实现细节。
273 1
|
10月前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
383 85
|
7月前
|
NoSQL Redis
Redis的常用数据类型有哪些 ?
Redis 有 5 种基础数据结构,它们分别是:string(字符串)、list(列表)、hash(字典)、set(集 合) 和 zset(有序集合)
|
10月前
|
存储 NoSQL Redis
redis常见数据类型
Redis 是一种基于内存的键值存储数据库,支持字符串、哈希表、列表、集合及有序集合等多种数据类型,每种类型均有特定用途与适用场景,提供丰富的命令操作,适用于高速数据访问与处理。
160 5
|
11月前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
207 1
|
12月前
|
存储 NoSQL Redis
Redis 哈希(Hash)
10月更文挑战第16天
160 1
|
12月前
|
存储 消息中间件 NoSQL
Redis 数据类型
10月更文挑战第15天
132 1
|
12月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
98 3