05-Redis的hash类型

常用的hash命令

在这里插入图片描述

命令演示

127.0.0.1:7000> hset k1 name zhangsan	#k1有一组hash,filed为name----value为zhangsan
(integer) 1
127.0.0.1:7000> hget k1 name
"zhangsan"
127.0.0.1:7000> hset k1 name zhangsan age 20 #hset命令就可以设置多组hash值了,当然hmset命令也可以
(integer) 1
127.0.0.1:7000> hget k1 name	#这个命令只能一个一个地获取filed的value,但是hmget命令可以获取多个field的value
"zhangsan"
127.0.0.1:7000> hget k1 age
"20"
127.0.0.1:7000> hkeys k1	#获取k1所有的filed
1) "name"
2) "age"
127.0.0.1:7000> HVALS k1	#获取k1所有的filed对应的value
1) "zhangsan"
2) "20"
127.0.0.1:7000> hmset k2 name lisi age 18
OK
127.0.0.1:7000> hmget k2 name age	#同时获取k2 2个filed的value
1) "lisi"
2) "18"
    
127.0.0.1:7000> hincrby k2 age 1 #k2已经存在,age属性加1
(integer) 19
127.0.0.1:7000> hget k2 age
"19"
127.0.0.1:7000> hincrby k3 age 10 #k3不存在,age属性的value设为10
(integer) 10
127.0.0.1:7000> hget k3 age
"10"
127.0.0.1:7000> HINCRBYFLOAT k4 score 90.5	#设置k4的score属性的value为90.5
"90.5"
127.0.0.1:7000> hget k4 score
"90.5"
127.0.0.1:7000> HINCRBYFLOAT k5 score abc	#score属性的value不能解析为float,故报错
(error) ERR value is not a valid float
    
127.0.0.1:7000> hdel k4 score	#删除score属性
(integer) 1
127.0.0.1:7000> hkeys k4	#删除后k4没有属性了,是一个空的hash了
(empty array)
127.0.0.1:7000> keys *
1) "k1"
2) "k3"
3) "k2"
127.0.0.1:7000> hkeys k1	#查看k1的字段有哪些
1) "name"
2) "age"
127.0.0.1:7000> hlen k1		#返回k1的字段数量
(integer) 2    
127.0.0.1:7000> hget k1 name
"zhangsan"
127.0.0.1:7000> HSTRLEN k1 name	#返回k1的name属性的value字符串长度
(integer) 8
127.0.0.1:7000> hget k1 age
"20"
127.0.0.1:7000> HSTRLEN k1 age	#返回k1的age属性的value字符串长度
(integer) 2
127.0.0.1:7000> 

hash应用场景

redis是内存数据库,对值的操作速度非常快。这就特别适合对响应速度有要求的场景。

比如:

  • 对象的一批数据返回:客户端打开一个页面,这个页面有很多数据,调接口的时候,是每一个数据都访问一次数据库,还是访问一次,返回对象的所有数据给客户端,页面一刷新就出来了,这样响应速度就很快。
  • 涉及数据变化的场景:微博的个人关注、点赞,商品详情页被浏览的次数,被收藏的次数,被加入购物车的次数。这种数据既要被查询又要被计算。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值