Redis缓存穿透怎么处理才靠谱?
我在做商品详情页,用户输入不存在的商品ID时,每次都会打到数据库,感觉这就是缓存穿透。试过把空结果也缓存一下,但不确定该设多长的过期时间,而且担心缓存太多无效key会占内存。
现在用的是Node.js + Redis,像这样缓存空值:
if (!product) {
await redis.setex(<code>product:${id}</code>, 60, 'null');
}
但总觉得不优雅,有没有更稳妥的做法?比如布隆过滤器是不是更适合这种场景?
宇文柯依
Lv1
布隆过滤器可以有效防止缓存穿透,先用布隆过滤器判断ID是否存在,再决定是否查缓存或数据库。试试看。
点赞
2026-03-21 21:18