redis大key删除时会造成整库堵塞,该问题如何优化?

参与17

3同行回答

nkj827nkj827  项目经理 , 长春长信华天
在Redis集群中,应用程序尽量避免使用大键;直接影响容易导致集群的容量和请求出现”倾斜问题“,在实际生产过程中,总会有业务使用不合理,出现这类大键;当DBA发现后推进业务优化改造,然后删除这个大键;如果直接删除它,DEL命令可能阻塞Redis进程数十秒,对应用程序和Redis集群可用性造...显示全部

在Redis集群中,应用程序尽量避免使用大键;直接影响容易导致集群的容量和请求出现”倾斜问题“,在实际生产过程中,总会有业务使用不合理,出现这类大键;当DBA发现后推进业务优化改造,然后删除这个大键;如果直接删除它,DEL命令可能阻塞Redis进程数十秒,对应用程序和Redis集群可用性造成严重的影响。

收起
系统集成 · 2018-06-08
浏览6179
jwhdhrjwhdhr  软件开发工程师 , 农商银行
直接删除大key是有风险的,key过大,直接删除时会导致Redis阻塞,不同类型的大key有不同的删除方式,Large Hash Key 可使用hscan命令,每次获取500个字段,再用hdel命令,每次删除1个字段。Large Set Key 可使用sscan命令,每次扫描集合中500个元素,再用srem命令每次删除一个键。Large Li...显示全部

直接删除大key是有风险的,key过大,直接删除时会导致Redis阻塞,不同类型的大key有不同的删除方式,

Large Hash Key 可使用hscan命令,每次获取500个字段,再用hdel命令,每次删除1个字段。

Large Set Key 可使用sscan命令,每次扫描集合中500个元素,再用srem命令每次删除一个键。

Large List Key可通过ltrim命令每次删除少量元素

Large Sorted Set Key使用sortedset自带的zremrangebyrank命令,每次删除top 100个元素

收起
互联网服务 · 2018-06-08
浏览6181
Luga LeeLuga Lee  系统架构师 , None
可以从以下方面:1、业务角度,尽量不要使用大key或对其进行处理2、在4.x版本之前可通过数据类型对应的参数命令进行操作,例如:针对Large Hash Key ,可使用hscan命令进行操作3、在4.x版本后可通过UNLINK 命令用于执行大KEY异步删除...显示全部

可以从以下方面:
1、业务角度,尽量不要使用大key或对其进行处理
2、在4.x版本之前可通过数据类型对应的参数命令进行操作,例如:针对Large Hash Key ,可使用hscan命令进行操作
3、在4.x版本后可通过UNLINK 命令用于执行大KEY异步删除

收起
互联网服务 · 2018-06-14
浏览6110

提问者

lxy286239996
数据库管理员君康人寿
擅长领域: 信创数据库服务器

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-06-08
  • 关注会员:4 人
  • 问题浏览:9329
  • 最近回答:2018-06-14
  • X社区推广