用大白话解释缓存Redis +MongoDB是什么有什么用怎么用

Redis和MongoDB是什么?

Redis:像你家的"小冰箱",专门存高频使用的食物(数据)。它是基于内存的键值数据库,读写速度极快(每秒超10万次操作)。比如你每次打开手机App,用户登录信息可能就存在Redis里,秒级响应。

MongoDB:像"超大号收纳箱",专门存各种不规则的杂物(非结构化数据)。它是文档型数据库,用类似JSON的格式存数据,比如用户信息、订单记录、传感器日志等,适合数据量大且结构多变的场景 。

Redis有什么用?怎么用?

核心用途

缓存加速:把数据库里频繁访问的数据(如商品详情)存到Redis,减少数据库压力

会话存储:用户登录状态存Redis,避免每次请求都查数据库

消息队列:用List结构实现秒杀订单排队,避免系统被挤爆

实时排行榜:用有序集合(Sorted Set)存游戏积分,实时更新排名

简单用法

安装:官网下载Redis,启动服务(redis-server),用redis-cli连上就能操作

存数据:

bash 复制代码
SET user:1001 "小明"  # 存字符串  
HSET user:profile 1001 age 25  # 存哈希(用户资料)  
LPUSH orders "订单A"  # 列表存订单队列  

查数据:

bash 复制代码
GET user:1001       # 取用户信息  
ZRANGE leaderboard 0 10 WITHSCORES  # 查排行榜前10名  

MongoDB有什么用?怎么用?

核心用途

存非结构化数据:比如用户动态(带图片、评论、位置信息)。

海量数据存储:支持分布式扩展,存物联网设备每天产生的TB级日志。

灵活查询:支持复杂条件(如"附近5公里的餐厅")和聚合分析(如每月销售额统计)。

简单用法

安装:官网下载MongoDB,启动服务(mongod),用mongo连上操作。

存数据

javascript 复制代码
db.users.insert({  
  name: "小红",  
  age: 28,  
  address: { city: "北京", street: "中关村" },  
  hobbies: ["爬山", "摄影"]  
})  // 存用户信息(嵌套文档+数组)  

查数据:

javascript 复制代码
db.users.find({ "address.city": "北京" })  // 查北京的用户  
db.orders.aggregate([  
  { $group: { _id: "$month", total: { $sum: "$amount" } } }  // 按月统计销售额  
])  

Redis和MongoDB怎么配合用?

典型场景:电商系统

Redis负责"快":

缓存商品详情页。

存用户购物车(Hash结构) 。

秒杀库存计数器(避免超卖)。
MongoDB负责"稳":

存订单详情(含商品、支付、物流信息)。

用户行为日志(用于大数据分析) 。

商品评论(带嵌套回复和点赞数)。

互补逻辑:
高频读写(如访问量、库存)交给Redis;
低频复杂数据(如订单记录、日志)交给MongoDB。

注意事项

Redis别当硬盘用:内存贵,只存高频小数据(如会话、计数器),别存电影文件

MongoDB别强求事务:跨文档操作可能不一致,重要资金流水还是用MySQL

数据备份:Redis定期用RDB快照或AOF日志备份。MongoDB开副本集,防止硬盘故障丢数据 。

Redis是"快枪手",专治高并发、小数据(如缓存、队列)

MongoDB是"收纳大师",专治大数据、非结构化(如日志、用户资料)。

两者配合,一个管"热数据",一个管"冷数据",能让系统又快又稳!

相关推荐
KK溜了溜了3 分钟前
JAVA-springboot 整合Redis
java·spring boot·redis
程序员柳17 分钟前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui
梦在深巷、36 分钟前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
IT乌鸦坐飞机1 小时前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
IT_10241 小时前
Spring Boot项目开发实战销售管理系统——数据库设计!
java·开发语言·数据库·spring boot·后端·oracle
祁思妙想2 小时前
八股学习(三)---MySQL
数据库·学习·mysql
惊骇世俗王某人2 小时前
1.MySQL之如何定位慢查询
数据库·mysql
秦歌6663 小时前
向量数据库-Milvus快速入门
数据库·milvus
Edingbrugh.南空4 小时前
Flink SQLServer CDC 环境配置与验证
数据库·sqlserver·flink
码不停蹄的玄黓4 小时前
MySQL分布式ID冲突详解:场景、原因与解决方案
数据库·分布式·mysql·id冲突