Redis

关注公众号 jb51net

关闭
首页 > 数据库 > Redis > Redis大key热点key

Redis之大key热点key的问题及处理

作者:信仰_273993243

文章主要介绍了Redis中大键(BigKey)和热点键(HotKey)的概念及其危害,并提供了相应的解决方案,针对大键,提出了拆分、删除、监控等方法;针对热点键,提供了存储、查询优化方案,另外,还介绍了阿里云Tair服务在处理大键和热点键方面的高级功能

大key(Large Key)通常指的是一个key对应的value很大,例如一个string类型的value大小达到10KB,或者一个list、hash、set、zset等集合类型的元素数量过多(比如超过10000个)。

大key的危害包括:

使用Redis自带的命令:redis-cli --bigkeys、有一些开源工具可以分析RDB文件,例如redis-rdb-tools,通过分析RDB文件来找出大key。

热点key(Hot Key)指的是被频繁访问的key。热点key的危害包括:

使用Redis自带的命令:redis-cli --hotkeys

一、big key

大Key通常都会以数据大小与成员数量来判定:

1、大key引发的问题

2、找出大key

3、解决方案

二、hotkey

热Key则以其接收到的请求频率,请求次数来判定,比如:Redis实例的每秒总访问量为10000,而其中一个Key的每秒访问量达到了7000

1、带来的问题

2、找出HotKey

3、处理方式

三、Tair

大key

hotkey

​1、介绍

2、过期算法:

TairHash使用高效的【Active Expire】算法,实现了在对响应时间几乎无影响的前提下,高效完成对field过期判断和删除的功能。此类高级功能的合理使用能够解放大量Redis的运维、故障处理工作并降低业务的代码复杂度,让运维将精力投入到其它更有价值的工作中,让研发有更多的时间来写更有价值的代码。

3、QueryCache是阿里云Tair(Redis企业版)服务的企业级特性之一

Tair QueryCache原理

至此,来自客户端的同样的请求无需再与Proxy后端的Redis进行交互而由Proxy直接返回数据,指向热Key的请求由一个Redis节点承担转为多个Proxy共同承担,能够大幅度降低Redis节点的热Key压力,同时Tair的QueryCache功能还提供了大量的命令来方便用户查看、管理,如通过querycache keys命令查看所有被缓存热Key,通过querycache listall获取所有已缓存的所有命令等。

Tair QueryCache智能化的热Key判定与缓存联动功同样能够降低运维及研发的工作负担。与传统的Redis同步中间件相比,阿里云Redis全球分布式缓存具有高可靠性、高吞吐低延迟、同步正确性高等特点。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文