电商推荐系统如何用 Redis¶
一、推荐系统数据流¶
Redis 在每个环节都有用。
二、用户行为缓存¶
用户点击、浏览、收藏、加购:
# 用户最近浏览
ZADD rec:recent:{userId} {timestamp} {itemId}
ZREMRANGEBYSCORE rec:recent:{userId} 0 (now - 7days)
# 用户点赞
SADD rec:likes:{userId} {itemId}
三、召回结果缓存¶
推荐算法召回的候选集(几千个 item)放 Redis:
用户刷新时直接拿,不用重新跑算法。
四、物品详情缓存¶
商品信息、标题、图片:
批量取:HMGET item:1 item:2 ...
五、特征存储¶
用户特征(年龄、性别、等级)、物品特征(类目、价格):
HSET user:feature:{userId} age 25 gender male level 5
HSET item:feature:{itemId} category phone price 3999
六、实时计数¶
- 点赞数:
HINCRBY item:{itemId} likes +1 - 浏览数:
INCR item:{itemId}:views - 热销榜:
ZINCRBY hot:daily {itemId} 1
七、去重¶
推荐过的用户不要再推:
八、为什么用 Redis¶
- 推荐要快(100ms 内返回)。
- 数据量大,DB 扛不住高 QPS。
- 数据结构丰富(ZSet 排序、Set 去重、Hash 存对象)。
九、典型架构¶
面试要点
推荐系统不是单一 Redis 命令,是数据结构组合:ZSet 做排序、Set 做去重、Hash 做对象、String 做计数。