MongoDB和Redis对比

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云数据库 Tair(兼容Redis),内存型 2GB
简介:

接触MongoDB和Redis有段时间了,只知道他们都是KV型数据库,但是异同点却不是很清楚。google了下,看到有篇英文版的对比:

英文来自——http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis/

于是就做了个表格,加上自己使用的一些体会,就有了此文。


MongoDB

Redis (V2.4)

说明

Written in: C++

Written in: C/C++


Main point:Retains some friendly properties of SQL. (Query, index)

Main point: Blazing fast

MongoDB保留类似SQL的属性,

例如:show dbs;db.test.find()

Redis—快

License: AGPL (Drivers: Apache)

License: BSD


Protocol: Custom, binary (BSON)

Protocol: Telnet-like


Master/slave replication (auto failover with replica sets)

主从复制+replica sets

Master-slave replication

主从复制



Sharding built-in

内置的sharding分片功能


MongoDB一般会使用replica sets和sharding功能结合,replica sets侧重高可用性及高可靠性,而sharding侧重于性能、易扩展

Queries are javascript expressions

查询是javascript语句



Run arbitrary javascript functions server-side

            运行任意的server-side javascript函数



Better update-in-place than CouchDB

update-in-place的支持比CouchDB更好




Uses memory mapped files for data storage

使用内存转储文件做数据存储

Disk-backed in-memory database,

Currently without disk-swap (VM and Diskstore were abandoned)

磁盘做后备、内存数据库

目前2.4版本不带disk-swap(虚拟内存和diskstore被舍弃了)


Performance over features

(性能优于特性)



Journaling (with --journal) is best turned on

(Journaling日志功能最好打开



On 32bit systems, limited to ~2.5Gb

在32位平台MongoDB不允许数据库文件(累计总和)超过2.5G,而64位平台没有这个限制。



An empty database takes up 192Mb

空数据库大约占 192Mb




GridFS to store big data + metadata (not actually an FS)

使用GridFS存储大数据和元数据(不是真正意义上的文件系统)


GridFS是一种将大型文件存储在MongoDB的文件规范。


Values can be set to expire (as in a cache)

可以设置value过期(由于在内存中)

expire name 10

例如:设置name这个value的过期时间是10S


Simple values or hash tables by keys,but complex operations like ZREVRANGEBYSCORE.

INCR & co (good for rate limiting or statistics)

使用简单值或以key值为索引的哈希表,也支持复杂的例如ZREVRANGEBYSCORE的有序集操作


Has sets (also union/diff/inter)

Has lists (also a queue; blocking pop)

Has hashes (objects of multiple fields)

Sorted sets (high score table, good for range queries)

有很多类型的数据,包括sets,lists,hash,有序集


Redis has transactions (!)

redis支持事物处理


Pub/Sub lets one implement messaging (!)

Pub/Sub允许用户实现消息机制,因此redis用于新浪微博中

适用——动态查询; 索引比map/reduce方式更合适时; 对于大数据库性能要求高,需要和CouchDB的功能一样,但数据变化大

适用——数据库大小快速变化并且总量可预测的,对内存要求高


举例——大部分用Mysql/PostgreSQL的场合,但是无法使用预先定义好所有列的时候

举例——股票价格、统计分析、实时数据收集、实时通信





本文转自 taojin1240 51CTO博客,原文链接:http://blog.51cto.com/taotao1240/755173,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
存储 NoSQL MongoDB
Redis在中国火爆,为何MongoDB更受欢迎国外?
本文介绍了Redis和MongoDB的基本概念及其在GitHub Star、DB-Engines Ranking和Google Trends中的数据对比。Redis是一个基于内存的键值对存储数据库,适合快速读写场景;MongoDB则是面向文档的数据库,支持大规模数据存储和复杂查询。全球范围内,MongoDB的搜索热度高于Redis,但在中国市场,Redis更受欢迎,因其高性能和低延迟特性满足了中国互联网公司对高并发的需求。总结部分分析了两者的特点及适用场景,并结合中美两国的行业背景解释了其受欢迎程度的不同原因。
71 1
|
9月前
|
NoSQL MongoDB Redis
Python与NoSQL数据库(MongoDB、Redis等)面试问答
【4月更文挑战第16天】本文探讨了Python与NoSQL数据库(如MongoDB、Redis)在面试中的常见问题,包括连接与操作数据库、错误处理、高级特性和缓存策略。重点介绍了使用`pymongo`和`redis`库进行CRUD操作、异常捕获以及数据一致性管理。通过理解这些问题、易错点及避免策略,并结合代码示例,开发者能在面试中展现其技术实力和实践经验。
511 9
Python与NoSQL数据库(MongoDB、Redis等)面试问答
|
9月前
|
存储 缓存 NoSQL
redis和mongodb比较
总之,Redis和MongoDB在不同的场景下有不同的优势,选择取决于应用的需求和数据特点。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
143 5
redis和mongodb比较
|
9月前
|
NoSQL 关系型数据库 MySQL
Windows、Linux、Mac安装数据库(mysql、MongoDB、Redis)#0
不同系统下进行MySQL安装、MongoDB安装、Redis安装【2月更文挑战第5天】
583 5
Windows、Linux、Mac安装数据库(mysql、MongoDB、Redis)#0
|
9月前
|
NoSQL 应用服务中间件 Linux
CentOS7搭建MySQL+Redis+MongoDB+FastDF
CentOS7搭建MySQL+Redis+MongoDB+FastDF
211 0
|
9月前
|
NoSQL 关系型数据库 MySQL
实习里项目使用mysql、mongodb、redis都用来干什么
实习里项目使用mysql、mongodb、redis都用来干什么
113 0
|
9月前
|
NoSQL 应用服务中间件 MongoDB
2023年底复盘之大厂必问面试题:Redis+MongoDB+ZK+Nginx+数据库
今天分享给大家的都是目前主流企业使用最高频的面试题库,也都是 Java 版本升级之后,重新整理归纳的最新答案,会让面试者少走很多不必要的弯路。同时每个专题都做到了详尽的面试解析文档,以确保每个阶段的读者都能看得懂,同时这部分面试文档也是可以免费的提供给有需要的同学们学习的,有需要的可以查看文末的获取方式!
|
2月前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
81 15
|
2月前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
3月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。