Redis数据类型之Hash

本文介绍了Redis中的Hash数据类型,它是一个字符串字段到值的映射表,适用于存储对象。文章详细讨论了Hash的结构,包括常用操作,并给出了对象缓存和电商购物车两个典型的应用场景。同时,也分析了Hash的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Redis五种数据类型

在这里插入图片描述
前言:
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 2的32次方 - 1 键值对(40多亿)
可以看成具有KEY和VALUE的MAP容器,该类型非常适合于存储值对象的信息,
如:uname,upass,age等。该类型的数据仅占用很少的磁盘空间(相比于JSON)

一、Hash结构

1.hash常用操作

命令解释
HSET key field value存储一个哈希表的键值对
HSETNX key field value存储一个不存在的哈希表key的键值对
HMSET key field value [field value…]在一个哈希表key中存储多个键值对
HGET key field获取哈希表key对应的field的键值
HMGET key field [field…]批量获取哈希表key中多个field的键值
HDEL key field [field…]删除哈希表key中field的键值
HLEN key返回哈希表key中field的数量
HGETALL key返回哈希表key中所有的键值
HINCRBY key field increment为哈希表key中field键的值加上增量increment
二、Hash应用场景

1.对象缓存
在这里插入图片描述
在这里插入图片描述
HMSET user {userid}:name zhuge {userid}:balance 1888
HMSET USER 1:name zhuge 1:balance 1888
HMGET user 1:name 1:balance
在这里插入图片描述

2.电商购物车
在这里插入图片描述
(1) 以用户id为key
(2)商品id为field
(3)商品数量为value
购物车操作:
(1) 添加商品–>HSET cart:1001 10888 1
(2) 增加数量–>HINCRBY cart:1001 10888 1
(3)获取数量总数–> HGET cart:1001 10888
(4)商品总数–>HLEN cart:1001
(5)删除商品–>HDEL cart:1001 10888
(6)获取购物车所有商品–>HGETALL cart:1001

三、Hash结构优缺点

1.优点

1)同类数据归类整合存储,方便数据管理
(2)相比string操作消耗内存与cpu更小
(3)相比string存储更节省空间

2.缺点

1)过期功能不能使用在field上,只能用在key上
(2)Redis集群架构下不适合大规模使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值