你们项目里 Redis 用在什么场景?具体用了哪些数据结构,为什么不用本地缓存或 MySQL?
我的判断
Redis 只放需要低延迟、可接受其一致性模型的数据,结构按访问动作选择,而不是为了“用了 Redis”把整张表搬进去。
项目里常见三类:商品详情用 String 保存序列化快照并设置 TTL;排行榜用 ZSet,分数是热度、成员是商品;限流或日活统计用计数、Bitmap/HyperLogLog。Hash 适合只更新对象少数字段,但字段很多或对象本来就整体读取时,String 更简单。
我会先问为什么不用本地缓存或 MySQL。单实例热点、允许各节点短暂不一致时用 Caffeine 本地缓存更快;需要跨实例共享、原子计数、排序或 TTL 才用 Redis;MySQL 仍是订单、余额这类权威数据源,Redis 不承担无法重建的唯一副本。
设计 key 时会带业务、租户和版本,例如 product:v3:{productId},明确 TTL、最大 value、写入方和失效方式。上线监控命中率、内存、热 key、慢命令和回源 QPS。
选 Redis 数据结构的标准是服务访问模式和故障语义,不是把 Java 集合名称逐个对应一遍。