Hash类型

Hash类型是String类型的field和value的映射表,或者说一个String集合。它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里比存储在String类型里占用更少的内存空间,并方便存取整个对象。

(场景:一张表,转换成一个hash。)

(第一种方式:hash的key名对应表的字段名,value值对应表的数据。一个hash的属性对应数据库的一条记录,非常一致,几个hash放在一个集合里面,这种映射是最清楚的)

(第二种方式:数据库里有一张表user,字段id(UUID),name, sex, age。给hash起一个名字user_table,这个hash里面的一个key,对应数据表里的一个UUID,把一个很长的剩下记录放在json里面,对应一个value)

(当工作中,一行数据里面几十个字段,整条去取,用第二种方式,一个UUID加json。如果很频繁取去取其中的几个字段,缓存应该设计的细粒度一点,把hash当前一个对象,设置name,age,sex等,只取name即可)

形如:hset myhash field1 hello(含义是hset是hash集合,myhash是集合名字,field1是字段名,hello为其值)。使用hget myhash field1 获取内容,也可以存储多个值。

hset user id 1

hset user name z3

hset user age 20

hset sex man

hget user name

hget user id

hget user age 

hget user sex

hmset可以进行批量存储多个键值对,hmset myhash sex nan addr beijing

hmset user2 id 2 name l4 age 25

也可以使用hmget进行批量获取多个键值对(返回一个集合)。

hmget user2 id name age

同样也有hsetnx,和setnx大同小异

hincrby和hdecrby 集合递增和递减

hexists 是否存在key,如果存在返回1,不存在返回0

hexists user age

hlen 返回hash集合里的所有的键数值

hdel 删除指定hash的field

hkeys 返回hash里所有的字段

hkeys user

hvals 返回hash的所有value

hvals user

hgetall 返回hash里所有的key和value

hgetall user

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值