看啥推荐读物
专栏名称: JAVA葵花宝典
java知识和技术查漏补缺,空余时间学习碎片化知识,分享开发、运维、架构等综合性知识,助力职场最后一公里与职业进阶,每天看宝典,就选它。
今天看啥  ›  专栏  ›  JAVA葵花宝典

面试高频:如何访问 Redis 中的海量数据?

JAVA葵花宝典  · 公众号  · Java  · 2019-12-11 09:38
作者:老顾聊技术 https://www.toutiao.com/i6697540366528152077前言有时候我们需要知道线上的redis的使用情况,尤其需要知道一些前缀的key值,那我们怎么去查看呢?事故产生因为我们的用户token缓存是采用了【user_token:userid】格式的key,保存用户的token的值。我们运维为了帮助开发小伙伴们查一下线上现在有多少登录用户,直接用了keys user_token*方式进行查询。事故就此发生了。导致redis不可用,假死。分析原因我们线上的登录用户有几百万,数据量比较多;keys算法是遍历算法,复杂度是O(n),也就是数据越多,时间复杂度越高。数据量达到几百万,keys这个指令就会导致 Redis 服务卡顿因为 Redis 是单线程程序,顺序执行所有指令,其它指令必须等到当前的 keys 指令执行完了才可以 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照