典型回答

Redis和MongoDB都是NoSQL数据库(以非表格格式存储数据的非关系型数据库),而MySQL是典型的关系型数据可。

在存储上,MongoDB和MySQL有点像,它他们都是基于磁盘存储的,而Redis是基于内存的,数据持久化一般通过RDB或AOF实现。

所以在性能上,Redis是最好的,而MongDB和MySQL则要差一些。

事务的支持方面,MySQL是非常严格的支持了事务的,ACID全部都满足,而Redis也支持事务,只保证原子性,并且它的原子性也不不支持回滚,只保证事务过程中的命令执行不会被中断。 自MongoDB 4.0版本起,也开始支持多文档事务了,但相比传统的关系型数据库,事务支持较为简单。

✅Redis 的事务机制是怎样的?

在用途方面,Redis 适用于需要快速读写、低延迟、缓存和实时数据处理的场景,比如做缓存、排行榜、Session存储等。MySQL 适用于结构化数据和持久化,业务数据的保存基本都是用MySQL这种关系型数据库的。而MongoDB 适用于需要高扩展性、灵活数据模型的大数据应用、日志存储(MongoDB适用于数据模式不固定、文档结构灵活的应用,如日志存储、用户行为数据分析等。 )和快速开发( 因为数据模型灵活,MongoDB允许更快速地迭代和开发,适合快速开发的应用 )的场景。

特性/数据库RedisMySQLMongoDB
类型内存键值存储(NoSQL)关系型数据库(RDBMS)文档型数据库(NoSQL)
数据模型键值对,支持多种数据结构表格(二维结构),SQL查询文档(JSON或BSON格式)
持久化基于内存持久化(磁盘存储)持久化(磁盘存储)
性能极高(内存存储)中等(磁盘存储)较高(适合大数据量的分布式存储)
事务支持简单的事务(只保证原子性)支持ACID事务支持多文档事务(4.0及以上)
扩展性支持分布式,主要依靠内存支持分库分表、主从复制,横向扩展原生支持分布式,分片机制
适用场景缓存、消息队列、实时统计、排行榜等结构化数据存储、事务性操作、复杂查询高可扩展性需求、非结构化数据、快速开发等