当前位置: 首页 > news >正文

Redis vs MongoDB:内存字典与文档库对决

Redis


目录

1. 本质

2. 最常干的事

3. 数据类型(5+1)

4. 一秒上手

5. 为什么用 Redis 而不用 map

6. 集群与高可用

一句话速记


把数据放在内存里的超高速“字典”服务器,支持持久化、发布订阅、分布式锁,常当缓存、计数器、消息队列用。

1. 本质

  • 内存数据库(键值对),读写亚毫秒级。

  • 单线程网络模型,没有并发锁竞争,快且简单。

  • 支持 持久化(RDB/AOF),断电不丢数据。


2. 最常干的事

场景Redis 命令示例说明
缓存SET user:123 '{"name":"sunan"}' EX 60010 分钟过期
计数器INCR page:view:home原子 +1
分布式锁SET lock:pay EX 30 NX30 秒自动释放
消息队列LPUSH task:q 1 2 3 / BRPOP task:q 0列表阻塞弹出
排行榜ZADD rank 100 sunan 90 tom有序集合

3. 数据类型(5+1)

  1. String 字符串

  2. List 双端队列

  3. Set 唯一集合

  4. Sorted Set 带分数排行榜

  5. Hash 对象表

  6. Bitmap/HyperLogLog/Stream 扩展类型


4. 一秒上手

docker run -d -p 6379:6379 redis:7-alpine
redis-cli
> SET site redis
> GET site
"redis"

5. 为什么用 Redis 而不用 map

map (内存)Redis
进程内进程外/网络
重启即失可持久化
单机分布式集群
无锁内置锁/原子指令

6. 集群与高可用

  • 主从复制:一主多从,读写分离。

  • Sentinel:自动故障转移。

  • Redis Cluster:数据分片,横向扩展。


一句话速记

Redis = 远程内存字典 + 持久化 + 发布订阅 + 分布式锁,命令简单,性能爆炸,是后端缓存与实时计数的首选。

二、mongoDB

用“类 JSON”文档存数据的超灵活数据库,不需要提前设计表结构,适合需求变化快、字段不定、要横向扩展的现代应用。


1. 本质

  • 文档型数据库(BSON,二进制 JSON)

  • 无模式(Schema-less):同一集合里字段可以不同

  • 支持索引、事务、聚合、分布式集群


2. 跟 MySQL 的直观对比

MySQLMongoDB
表 table集合 collection
行 row文档 document
列 column字段 field
先建表结构随时加字段
SQLJSON 风格的查询

3. 一秒上手

docker run -d -p 27017:27017 mongo:7-jammy
mongosh
> use shop
> db.products.insertOne({name:"iPhone", price:5999, spec:{ram:"8G"}})
> db.products.find({price:{$gte:5000}})

4. 最常干的事

场景示例
用户资料字段随时扩展(头像、第三方账号、会员等级)
日志/事件不同日志字段不一样,直接塞
内容管理文章、评论、标签嵌套在一个文档
实时分析聚合框架一条语句分组、过滤、统计

5. 优势

  • 敏捷:需求变→直接改字段,无需 ALTER TABLE

  • 嵌套:一条文档里嵌套数组、子文档,一次取出

  • 水平扩展:内置分片,海量数据加机器即可

  • 生态:Change Stream、GridFS 存大文件、Atlas 云服务


6. 什么时候不用

  • 强事务、多表关联复杂(MySQL 更成熟)

  • 固定字段、字段极少变化(MySQL 更省空间)

  • 高度一致性银行核心帐(MySQL + 事务)


一句话速记

MongoDB = 文档版数据库,像 JSON 一样存数据,随加字段、易扩展,适合产品迭代快、字段不定、海量文档的现代应用。

http://www.dtcms.com/a/597891.html

相关文章:

  • 长沙手机网站首页设计公司淮南网络宾馆
  • Python应用指南:利用GET请求获取微博小时热搜榜
  • ROS2 Action 通信详解:从自定义消息到 Server/Client 实现(附 MoveIt! 联动示例)
  • 个人建什么网站最赚钱智慧团建网站登录平台pc端
  • 使用新版本cpu编译vLLM cpu端(编译完成,但是SCNet公网转发8000端口后,连不上)
  • 双浩建设网站aspnet网站开发pdf
  • 云南网站制作公司在线生成短链接
  • 上海企业网站制作报价燕郊网站建设
  • 东航数科开源软件治理体系的建设实践”荣获OSCAR开源+安全及风险治理案例
  • 查企业免费的网站郑州同济医院妇科怎么样
  • 基于SAM2的眼动数据跟踪2.1——修正目标消失的记录方式
  • 网站开发包含网站维护吗建设一个网站可以采用那几方案
  • 【C++】--模板进阶
  • 如何选择企业网站建设wordpress 自动跳转
  • 设计深圳网站制作新北方app下载
  • 【Janet】函数
  • 【微服务 - easy视频 | day04】Seata解决分布式事务
  • 网站关键词没有排名怎么用ip做网站
  • Jmeter超详细使用教程
  • 北京网站优化技术学科分类目录
  • 网站源码下载安全吗找一个免费域名的网站
  • 【Git、GitHub、Gitee】GitLab的概念、注册流程、远程仓库操作以及高级功能详解(超详细)
  • 2025三掌柜赠书活动第四十一期 AI Agent 开发实战:MCP+A2A+LangGraph 驱动的智能体全流程开发
  • 1 NLP导论及环境准备
  • 龙岩做网站开发大概价格网页软件有哪些
  • 设计软件网站wordpress付费看
  • C#中,FirstOrDefault
  • 【INVSR 代码解析】encode_first_stage函数,以及一个知识点普通编码器与VAE编码器的区别
  • 面试题:说说Redis的三大问题和解决方案
  • 大型企业网站wordpress评论框制作