标准答案

  1. Redis 适合缓存、计数、短期状态、排行榜、去重和简单队列等按 Key 或限定结构访问的数据,不需要复杂关联与长期审计。
  2. 涉及多表关联、多条件过滤、任意排序、报表聚合、外键约束、精确恢复或复杂事务的业务,应该把关系数据库或专用搜索、分析系统作为主存储。
  3. Redis 的过期、淘汰、复制窗口和内存成本意味着它不天然满足长期保留和零丢失要求;即便开启持久化,恢复与一致性语义也不同于关系数据库。
  4. 若为了查询在 Redis 中维护多份反向索引,必须计算写放大、失效顺序、重建与数据校对成本;不能只因为读快就复制全部业务关系。

题目解析

把 Redis 当数据库的常见动机是临时追求低延迟,随后会遇到查询能力不足、内存膨胀和数据难恢复。正确做法是先区分事实数据、读模型和派生索引。

对需要极低延迟的核心判断,可以把数据库事实投影到 Redis,但写入仍要有可靠来源和重建路径,读错或丢失时可回到事实层验证。

常见误区

  • 为了支持一个复杂筛选条件,在 Redis 中维护大量手工二级索引却没有一致性校对。
  • 把 Redis 的单命令原子性误当成跨实体、跨服务的完整事务。

作者信息