辛德蕾拉|面试官:Redis缓存了解吗?面对这11道题是否有很多问号?( 九 )
从节点过滤
对宕机的 master node , 从其所有的 slave node 中 , 选择一个切换成 master node 。
检查每个 slave node 与 master node 断开连接的时间 , 如果超过了 cluster-node-timeout *cluster-slave-validity-factor , 那么就没有资格切换成 master 。
从节点选举
每个从节点 , 都根据自己对 master 复制数据的 offset , 来设置一个选举时间 , offset 越大(复制数据越多)的从节点 , 选举时间越靠前 , 优先进行选举 。
所有的 master node 开始 slave 选举投票 , 给要进行选举的 slave 进行投票 , 如果大部分 master node(N/2 + 1)都投票给了某个从节点 , 那么选举通过 , 那个从节点可以切换成 master 。
从节点执行主备切换 , 从节点切换为主节点 。
与哨兵比较
整个流程跟哨兵相比 , 非常类似 , 所以说 , redis cluster 功能强大 , 直接集成了 replication 和sentinel 的功能 。
8、了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会 怎么样?系统该如何应对这种情况?如何处理 redis 的穿 透?面试官心理分析其实这是问到缓存必问的 , 因为缓存雪崩和穿透 , 是缓存最大的两个问题 , 要么不出现 , 一旦出现就是致命性的问题 , 所以面试官一定会问你 。
面试题剖析缓存雪崩
对于系统 A , 假设每天高峰期每秒 5000 个请求 , 本来缓存在高峰期可以扛住每秒 4000 个请求 , 但是缓存机器意外发生了全盘宕机 。 缓存挂了 , 此时 1 秒 5000 个请求全部落数据库 , 数据库必然扛不住 , 它会报一下警 , 然后就挂了 。 此时 , 如果没有采用什么特别的方案来处理这个故障 , DBA 很着急 , 重启数据库 , 但是数据库立马又被新的流量给打死了 。
这就是缓存雪崩 。
大约在 3 年前 , 国内比较知名的一个互联网公司 , 曾因为缓存事故 , 导致雪崩 , 后台系统全部崩溃 , 事故从当天下午持续到晚上凌晨 3~4 点 , 公司损失了几千万 。
缓存雪崩的事前事中事后的解决方案如下 。- 事前:redis 高可用 , 主从+哨兵 , redis cluster , 避免全盘崩溃 。- 事中:本地 ehcache 缓存 + hystrix 限流&降级 , 避免 MySQL 被打死 。- 事后:redis持久化 , 一旦重启 , 自动从磁盘上加载数据 , 快速恢复缓存数据 。
用户发送一个请求 , 系统 A 收到请求后 , 先查本地 ehcache 缓存 , 如果没查到再查 redis 。 如果 ehcache和 redis 都没有 , 再查数据库 , 将数据库中的结果 , 写入 ehcache 和 redis 中 。
限流组件 , 可以设置每秒的请求 , 有多少能通过组件 , 剩余的未通过的请求 , 怎么办?走降级!可以返回一些默认的值 , 或者友情提示 , 或者空白的值 。
好处: - 数据库绝对不会死 , 限流组件确保了每秒只有多少个请求能通过 。- 只要数据库不死 , 就是说 , 对用户来说 , 2/5 的请求都是可以被处理的 。- 只要有 2/5 的请求可以被处理 , 就意味着你的系统没死 , 对用户来说 , 可能就是点击几次刷不出来页面 , 但是多点几次 , 就可以刷出来一次 。
缓存穿透
对于系统 A , 假设一秒 5000 个请求 , 结果其中 4000 个请求是黑客发出的恶意攻击 。
黑客发出的那 4000 个攻击 , 缓存中查不到 , 每次你去数据库里查 , 也查不到 。
举个例子 。 数据库 id 是从 1 开始的 , 结果黑客发过来的请求 id 全部都是负数 。 这样的话 , 缓存中不会有 , 请求每次都“视缓存于无物” , 直接查询数据库 。 这种恶意攻击场景的缓存穿透就会直接把数据库给打死 。
推荐阅读
- 网友|面试时话都没讲就赶人走?”,杭州小伙想不通:“就因为家里拆迁了
- 北青网综合|杭州小伙想不通:“就因为家里拆迁了,面试话都没讲就赶人走?”
- 爱羽客羽毛球网|今年不会参加任何比赛,辛德胡:生命最重要
- 学艺说|艺考面试穿搭指南,各专业还有这些不同穿法!
- 辛德蕾拉华为遭川普判死日媒爆2大关键深圳也危险了
- 北京日报客户端|太狠了!男子打伤自己谎称面试被打敲诈招聘单位
- 每日桂林|曝光文化宫这家店!老板公然向面试女孩提无耻要求!爆料人:我有完整的记录!
- 辛德蕾拉共享单车如何成了出租车的竞争对手
- 爱上搞笑君|面试官是个美女,面试官问俺,开心笑话:今天去面试
- 爱做事的实习生【麦肯锡实习怎么找】腾讯面试官:请预测一下iPhone 12的全球销量?
