今天做一Redis设计与实现例题
题目:某电商平台用 Redis 缓存商品详情,设置maxmemory 1GB,但近期频繁出现热门商品缓存被淘汰、数据库压力骤增的情况。已知缓存中存在大量历史滞销商品数据,试分析可能原因并给出优化方案
解答:
可能原因:默认缓存淘汰策略(如noeviction或allkeys-lru)未针对业务优化。allkeys-lru可能误淘汰热门商品(若滞销品占用空间大);volatile-lru若未设置过期时间则失效
优化方案:
改用volatile-lru,为滞销商品设置短期过期时间,热门商品设长过期或永不过期
结合object freq统计访问频率,手动保留高频商品
拆分缓存:独立缓存热门商品,避免与滞销品竞争空间
做题思路:
通过策略调整与业务适配,平衡缓存命中率与资源利用率。