Redis 存储 JSON 键值对示例
存储操作:
// 存储用户信息(键:user:1001,值:JSON对象)
SET user:1001 '{"name":"Alice", "age":30, "address":"New York"}'
查询操作:
// 获取用户信息
GET user:101
// 输出结果:{"name":"Alice", "age":30, "address":"New York"}
MongoDB 存储 JSON 键值对示例
存储操作:
db.users.insertOne({
_id: 1001,
name: "Alice",
age: 30,
address: "New York"
});
查询操作:
db.users.findOne({ _id: 1001 });
核心对比分析
对比维度 | Redis | MongoDB |
---|
存储结构 | 值为纯字符串化的 JSON,需客户端解析/序列化 | 原生支持 JSON-like BSON 格式,支持字段级查询和索引 |
性能 | 内存级操作(毫秒级响应),适合高频读写 | 磁盘/内存混合存储(通常为 10-100ms),适合高吞吐场景 |
查询能力 | 仅支持键级操作,无法直接查询 JSON 内部字段 | 支持复杂查询(如 db.users.find({ age: { $gt: 25 } }) )和索引优化 |
持久化 | 需通过 RDB/AOF 机制实现,存在数据丢失风险(默认非实时持久化) | 默认持久化到磁盘,支持副本集和分片集群保证高可用性 |
适用场景 | 缓存、计数器、实时统计等需要极致性能的场景 | 需要复杂查询、事务、持久化存储的业务数据(如用户资料、订单系统) |
关键差异总结
- 数据模型
Redis 需要手动处理 JSON 序列化,MongoDB 原生支持文档结构 - 查询灵活性
Redis 仅支持键匹配,MongoDB 支持多条件组合查询 - 持久化能力
Redis 更适合临时数据缓存,MongoDB 适合长期业务数据存储