当前位置: 七九推 > IT编程>数据库>Redis > redis如何取hash的值

redis如何取hash的值

2023年01月20日 Redis 我要评论
redis取hash的值命令:可以取得对应的hash中的具体值hmget s_account:208 account accountname结果:“www”如图命令:取得has

redis取hash的值

命令:可以取得对应的hash中的具体值

hmget s_account:208 account accountname

结果:“www”

如图

命令:取得hash中的所有key

hkeys s_account:208

结果:

redis中存值是hash冲突如何解决

redis 中的 hash和 java的 hashmap 更加相似,都是数组+链表的结构.当发生 hash 碰撞时将会把元素追加到链表上

我们先来了解下 hash 的内部结构.第一维是数组,第二维是链表.组成一个 hashtable.

在 java 中 hashmap 扩容是个很耗时的操作,需要去申请新的数组,扩容的成本并不低,因为需要遍历一个时间复杂度为o(n)的数组,并且为其中的每个enrty进行hash计算。加入到新数组中

为了追求高性能,redis 采用了渐进式 rehash 策略.这也是 hash 中最重要的部分.

redis在扩容的时候执行 rehash 策略会保留新旧两个 hashtable 结构,查询时也会同时查询两个 hashtable.redis会将旧 hashtable 中的内容一点一点的迁移到新的 hashtable 中,当迁移完成时,就会用新的 hashtable 取代之前的.当 hashtable 移除了最后一个元素之后,这个数据结构将会被删除.

数据搬迁的操作放在 hash 的后续指令中,也就是来自客户端对 hash 的指令操作.一旦客户端后续没有指令操作这个 hash.redis就会使用定时任务对数据主动搬迁.

正常情况下,当 hashtable 中元素的个数等于数组的长度时,就会开始扩容,扩容的新数组是原数组大小的 2 倍.如果 redis 正在做 bgsave(持久化) 时,可能不会去扩容,因为要减少内存页的过多分离(copy on write).但是如果 hashtable 已经非常满了,元素的个数达到了数组长度的 5 倍时,redis 会强制扩容.

当hashtable 中元素逐渐变少时,redis 会进行缩容来减少空间占用,并且缩容不会受 bgsave 的影响,缩容条件是元素个数少于数组长度的 10%.

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持七九推。

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

  • 使用Redis缓存时高效的批量删除的几种方案

    使用Redis缓存时高效的批量删除的几种方案

    前因后果之前我们的服务,在上线的时候发现有一些大key的使用不是很规范,特别是没有设置过期时间,因此导致redis中内存的数据越来越多,目前redis节点的内存... [阅读全文]
  • Redis+Hbase+RocketMQ 实际使用问题案例讲解

    Redis+Hbase+RocketMQ 实际使用问题案例讲解

    需求将hbase数据,解析后推送到rocketmq。redis使用list数据类型,存储了需要推送的数据的rowkey及表名。简单画个流程图就是:分析及确定方案... [阅读全文]
  • Redisson如何解决redis分布式锁过期时间到了业务没执行完问题

    面试问题redis锁的过期时间小于业务的执行时间该如何续期?问题分析首先如果你之前用redis的分布式锁的姿势正确,并且看过相应的官方文档的话,这个问题so easy.我们来看很多…

    2023年01月14日 数据库
  • Redis脑裂导致数据丢失的解决

    Redis脑裂导致数据丢失的解决

    1 案例主从集群有1个主库、5个从库和3个哨兵实例,突然发现客户端发送的一些数据丢了,直接影响业务层数据可靠性。最终排查发现是主从集群中的脑裂问题导致:主从集群... [阅读全文]
  • 浅谈Redis在秒杀场景的作用

    浅谈Redis在秒杀场景的作用

    秒杀业务特点:限时限量,业务系统要处理瞬时高并发请求,redis是必需品。秒杀可分成秒杀前、秒杀中和秒杀后三阶段,每个阶段的请求处理需求不同,redis具体在秒... [阅读全文]
  • Redis使用Bitmap的方法实现

    1. bitmap 是什么bitmap(也称为位数组或者位向量等)是一种实现对位的操作的'数据结构',在数据结构加引号主要因为:bitmap 本身不是一种数据结构,…

    2023年01月27日 数据库

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2023  七九推 保留所有权利. 粤ICP备17035492号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com