Redis缓存穿透怎么处理才靠谱?

迷人的思佳 阅读 51

我在做商品详情页,用户输入不存在的商品ID时,每次都会打到数据库,感觉这就是缓存穿透。试过把空结果也缓存一下,但不确定该设多长的过期时间,而且担心缓存太多无效key会占内存。

现在用的是Node.js + Redis,像这样缓存空值:

if (!product) {
  await redis.setex(<code>product:${id}</code>, 60, 'null');
}

但总觉得不优雅,有没有更稳妥的做法?比如布隆过滤器是不是更适合这种场景?

我来解答 赞 6 收藏
二维码
手机扫码查看
1 条解答
宇文柯依
布隆过滤器可以有效防止缓存穿透,先用布隆过滤器判断ID是否存在,再决定是否查缓存或数据库。试试看。
点赞
2026-03-21 21:18