MST

星途 面试题库

面试题:Redis多维度限流中常见的维度有哪些及如何简单组合

在Redis多维度限流场景下,请列举至少三种常见的限流维度,并简要说明如何将其中两个维度进行简单组合来实现限流策略。
29.0万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

常见限流维度

  1. IP 维度:根据请求来源的 IP 地址进行限流,防止单个 IP 频繁访问服务,可通过记录每个 IP 的访问次数,达到阈值后限制访问。
  2. 用户维度:以用户标识(如用户 ID)为依据,针对每个用户的请求进行限流,避免单个用户对系统资源过度占用。
  3. 接口维度:对不同的接口分别设置限流规则,不同业务接口可能有不同的承受能力,通过对每个接口的访问次数控制来保障系统整体稳定。

维度组合实现限流策略

以 IP 维度和接口维度组合为例:

  1. 记录方式:在 Redis 中,可以使用哈希(Hash)数据结构来记录。例如,以接口名称作为哈希表的 key,哈希表的 field 为 IP 地址,value 记录该 IP 对这个接口的访问次数。
  2. 限流逻辑:每次请求到达时,先根据接口名称和请求 IP 从 Redis 哈希表中获取当前访问次数。如果次数未达到设定的阈值,则允许访问,并将访问次数加 1;若达到或超过阈值,则拒绝访问。可使用 Redis 的 HINCRBY 命令来实现计数操作,通过判断返回值是否超过阈值决定是否限流。