redis使用场景之hash(一)

在讲hash使用场景之前,我们先来认识一下它是什么,具有什么结构、怎么使用、以及在使用的时候有哪些注意事项

hash介绍

  • 对一系列存储的数据进行编组,方便管理,典型应用存储对象信息。string类型也可以实现存对象,对这个对象进行json序列化,然后取的时候再进行反序列化,但是,每次修改的时候只能整体修改,不能单个修改某个属性,且必须有实体类型的支撑。序列化和反序列化也需要消耗服务器性能。
  • 一个存储空间保存多个健值对数据。
  • 底层使用哈希表结构实现数据存储。

哈希存储结构优化

  • 如果field数量较少,存储结构优化为类型数组结构
  • 如果field数量较多,存储结构使用HashMap结构

基本操作

添加/修改数据

hset key field value

添加修改多个数据

hmset key field1 value1 field2 value2 ...

获取哈希表中字段的数量

hlen key

获取哈希表中是否存在指定的字段

hexists key field

获取数据

hget key field

hgetall key

获取多个数据

hmget key field1 field2 ...

删除数据

hdel key field1 [field2]

获取哈希表中所有的字段名或字段值

hkeys key
hvals key

设置指定字段的数值数据增加指定范围的值

hincrby key field increment
hincrbyfloat key field increment

注意事项

  • hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象,如果数据未取到,则返回 nil
  • 每个hash可以存储2^32-1个键值对
  • hash类型非常贴近对象的数据存储形式,并且可以灵活添加、删除对象属性。但hash设计初衷不是为了存储大量对象而设计的,切记不可乱用,更不可以将hash作为对象列表使用。
  • hgetall操作可以获取全部属性,如果内部field过多,遍历整体数据效率就会很低,有可能成为数据访问瓶颈。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值