06 Redis Hash类型操作与使用场景

Redis Hash类型操作与使用场景

一、Hash类型操作

一)Hash类型概述

​ 以下图为关系型数据表记录的两条用户信息,用户的属性作为表的列,每条用户信息作为行。

在这里插入图片描述

​ 如果将其用哈希类型存储,如图所示。

在这里插入图片描述

二)Hash类型操作

​ Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。

​ Hash类型的常见命令:

​ HSET key field value:添加或者修改一个hash类型key的field的值

# 获取添加一个key
127.0.0.1:6379> hset user:1 id 1
1

​ HGET key field:获取一个hash类型key的field的值

# 获取key的值
127.0.0.1:6379> hget user:1 id
1

​ HMSET:批量添加多个hash类型key的field的值

# 批量定义
127.0.0.1:6379> hmset user:1 name jack age 18 sex m
OK

​ HMGET:批量获取多个hash类型key的field的值

# 批量查询
127.0.0.1:6379> hmget user:1 name age sex
jack
18
m

​ HGETALL:获取一个hash类型的key中的所有的field和value

# 获取key中的所有的field和value
127.0.0.1:6379> hgetall user:1
id
1
name
jack
age
18
sex
m

​ HKEYS:获取一个hash类型的key中的所有的field

# 获取key中的所有的field
127.0.0.1:6379> hkeys user:1
id
name
age
sex

​ HDEL:删除一个hash类型key的field和value

# 删除field:sex
127.0.0.1:6379> hdel user:1 sex
1

# 查询是否存在
127.0.0.1:6379> hkeys user:1
id
name
age

​ HINCRBY:让一个hash类型key的字段值自增并指定步长

# 自增1
127.0.0.1:6379> hincrby user:1 age 1
19

​ HSETNX:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行

# 添加phone
127.0.0.1:6379> hsetnx user:1 phone 111
1

二、使用场景

存储对象:

​ Hash类型的(key, field, value)的结构与对象的(对象id, 属性, 值)的结构相似,可以用来存储对象。比如,商品的价格、销量、关注数、评价数等可能经常发生变化的属性,就适合存储在Hash类型里。当然,不常变化的属性存储在Hash类型里也没有问题,比如商品名称、商品描述、上市日期等。

购物车:

​ 以用户id为key,商品id为field,商品数量为value,恰好构成了购物车的3个要素,Hash类型非常适合这种场景。

​ Hash类型可以灵活添加删除对象属性,底层使用哈希表结构实现数据存储。每个Hash可以存储2^32-1个键值对(40多亿)。此外,Hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取到,对应的值为(nil)。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值