第 201 题:特征存储的选型,Redis vs Cassandra vs 自研KV?
题目
特征存储的选型,Redis vs Cassandra vs 自研KV?
完整讲解
一、特征存储的诉求
特征存储:为推荐/广告/风控等提供低延迟、高并发的特征读写,支持在线推理(实时查 user/item 特征)与离线/近线更新。选型需考虑:延迟、QPS、数据规模、更新模式(全量/增量)、一致性、运维成本。
二、Redis
- 特点:内存存储,延迟极低(亚 ms~几 ms)、单机 QPS 高;支持多种结构(String、Hash、Sorted Set)。适用:特征量在单机/集群内存可承载、读多写少、对延迟极度敏感。
- 局限:容量受内存限制、持久化与主从有额外开销;大 key、大 value 影响性能;多 key 批量读需 pipeline,复杂查询能力弱。
三、Cassandra
- 特点:分布式、可水平扩展,无单点;写优化、适合高写入(如特征实时更新);最终一致性、可调一致性级别。适用:特征量大、多机房、写多或读写都多、可接受 ms 级延迟。
- 局限:读路径比 Redis 复杂、延迟通常更高;不支持复杂查询,多为 key-value 或简单范围;运维与调参成本较高。
四、自研 KV
- 特点:针对特征场景定制:固定 schema、列式或分层存储、冷热分离、与训练/批处理 pipeline 打通;可做分层存储(热数据内存/SSD、冷数据盘)、批量导入与版本管理。
- 适用:特征规模与 QPS 极大、对延迟与成本有极致要求、有足够人力;代价是开发与运维成本高。
五、选型小结
- 小规模、极低延迟 → Redis;大规模、高写、多机房 → Cassandra;超大规模、强定制 → 自研 KV。也可混合:热特征 Redis、全量或冷数据 Cassandra/自研。
面试要点
- 能说清特征存储的典型需求:延迟、QPS、规模、更新模式;能对比 Redis、Cassandra、自研 KV 的存储与访问特点。
- 能说明 Redis 适用小规模极低延迟、Cassandra 适用大规模与高写、自研适用极致定制;能简述混合架构。
- 能列举各方案局限:Redis 容量与持久化、Cassandra 延迟与运维、自研成本。
记忆要点
- Redis=内存、极低延迟、适合小规模/热数据;Cassandra=分布式、高写、可扩展、ms 级;自研=定制、成本高。
- 选型看规模、延迟、写比例、运维;可热数据 Redis+全量 Cassandra/自研。