一、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集群架构下不适合大规模使用