redis 和 MongoDB都可以存储键值对,并且值可以是复杂json,用完整例子分别展示说明两者在存储json键值对上的使用对比

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 键值对示例

存储操作:
// 直接插入 JSON 文档到 users 集合
db.users.insertOne({
  _id: 1001,
  name: "Alice",
  age: 30,
  address: "New York"
});
查询操作:
// 根据_id查询文档
db.users.findOne({ _id: 1001 });
// 输出结果:{ "_id": 1001, "name": "Alice", "age": 30, "address": "New York" }

核心对比分析

对比维度 Redis MongoDB
存储结构 值为纯字符串化的 JSON,需客户端解析/序列化 原生支持 JSON-like BSON 格式,支持字段级查询和索引
性能 内存级操作(毫秒级响应),适合高频读写 磁盘/内存混合存储(通常为 10-100ms),适合高吞吐场景
查询能力 仅支持键级操作,无法直接查询 JSON 内部字段 支持复杂查询(如 db.users.find({ age: { $gt: 25 } }))和索引优化
持久化 需通过 RDB/AOF 机制实现,存在数据丢失风险(默认非实时持久化) 默认持久化到磁盘,支持副本集和分片集群保证高可用性
适用场景 缓存、计数器、实时统计等需要极致性能的场景 需要复杂查询、事务、持久化存储的业务数据(如用户资料、订单系统)

关键差异总结

  1. 数据模型
    Redis 需要手动处理 JSON 序列化,MongoDB 原生支持文档结构
  2. 查询灵活性
    Redis 仅支持键匹配,MongoDB 支持多条件组合查询
  3. 持久化能力
    Redis 更适合临时数据缓存,MongoDB 适合长期业务数据存储

你可能感兴趣的:(redis,Spring,Boot,数据库,redis,mongodb,json)