`

redis,memecached,mongodb三者你应该知道的秘密。

阅读更多

今天抽时间来给大家讲解一下redis,memcached,mongodb三者之间的异同点,以便于大家在选型的过程中有所帮助,下面主要从性能,可操作性,内存占用大小,可用性,可靠性,数据一致性分别来进行讲解:

1、性能
都比较高,性能对我们来说应该都不是瓶颈
总体来讲,TPS方面redis和memcache差不多,要大于mongodb
2、操作的便利性
memcache数据结构单一
redis丰富一些,数据操作方面,redis更好一些,较少的网络IO次数
mongodb支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富
3、内存空间的大小和数据量的大小
redis在2.0版本后增加了自己的VM特性,突破物理内存的限制;可以对key value设置过期时间(类似memcache)
memcache可以修改最大可用内存,采用LRU算法
mongoDB适合大数据量的存储,依赖操作系统VM做内存管理,吃内存也比较厉害,服务不要和别的服务在一起
4、可用性(单点问题)
对于单点问题,redis,依赖客户端来实现分布式读写;主从复制时,每次从节点重新连接主节点都要依赖整个快照,无增量复制,因性能和效率问题,
所以单点问题比较复杂;不支持自动sharding,需要依赖程序设定一致hash 机制。
一种替代方案是,不用redis本身的复制机制,采用自己做主动复制(多份存储),或者改成增量复制的方式(需要自己实现),一致性问题和性能的权衡
Memcache本身没有数据冗余机制,也没必要;对于故障预防,采用依赖成熟的hash或者环状的算法,解决单点故障引起的抖动问题。
mongoDB支持master-slave,replicaset(内部采用paxos选举算法,自动故障恢复),auto sharding机制,对客户端屏蔽了故障转移和切分机制。
5、可靠性(持久化)
对于数据持久化和数据恢复,
redis支持(快照、AOF):依赖快照进行持久化,aof增强了可靠性的同时,对性能有所影响
memcache不支持,通常用在做缓存,提升性能;
MongoDB从1.8版本开始采用binlog方式支持持久化的可靠性
6、数据一致性(事务支持)
Memcache 在并发场景下,用cas保证一致性
redis事务支持比较弱,只能保证事务中的每个操作连续执行
mongoDB不支持事务
7、数据分析
mongoDB内置了数据分析的功能(mapreduce),其他不支持

好了,到此便都讲解完了,希望对大家有所帮助,最后给大家推荐59biye网上面的有关memchaed跟redis的区别,有兴趣的童鞋们可以点击查看

9
1
分享到:
评论
5 楼 dove19900520 2014-06-20  
文章看着面熟,跟我们公司内部培训的内容类似!
4 楼 flex_莫冲 2014-06-20  
这是要混搭的节奏吗。
3 楼 liubey 2014-06-20  
这文章啥意思,都不是一个类型比个毛线?
2 楼 freezingsky 2014-06-20  
mongodb和那二者放到一起比较,合适吗?
1 楼 i_59biye 2014-06-20  
博主好像对框架的东西研究的挺多了以后可以多分享一下。

相关推荐

    redis-mongodb-memcached视频教程

    高级分布式数据库教程,nosql,mongodb,redis。非常好的分布式教程!

    基于SpringBoot + Mybatis + Thymeleaf +Redis+MongoDB+MySQL开发的商品管理系统

    基于SpringBoot + Mybatis + Thymeleaf +Redis+MongoDB+MySQL开发的商品管理系统。基于SpringBoot + Mybatis + Thymeleaf +Redis+MongoDB+MySQL开发的商品管理系统。基于SpringBoot + Mybatis + Thymeleaf +Redis+...

    使用scrapy,redis,mongodb实现的一个分布式网络爬虫[整理].pdf

    爬虫性能优化主要包括三个方面:分布式爬虫、Redis 任务队列和 MongoDB 数据存储。分布式爬虫可以提高爬虫的性能,而 Redis 任务队列可以提高爬虫的可扩展性和灵活性。 MongoDB 数据存储可以提高爬虫的数据存储效率...

    mysql、redis和MongoDB三大数据库的优点和区别

    mysql、redis和MongoDB三大数据库的优点和区别

    springboot+springmvc+mybatis+redis+mongodb

    在IT行业中,Spring Boot、Spring MVC、MyBatis、Redis和MongoDB是常见的技术栈,它们各自扮演着关键角色,构建高效、灵活的Web应用程序。本文将深入探讨这些技术的集成与应用。 首先,Spring Boot是由Pivotal团队...

    基于SpringBoot + Redis + MongoDB + MySQL开发的商品管理系统

    使用Redis缓存来提升数据库查询性能 主要分为四个模块: 用户管理模块 :用户登录、注册、密码找回(通过邮箱方式)、用户信息修改、密码修改 仪表盘管理模块 :展示当前月收入及其环比(环比=(当前月收入 - 上个...

    基于springboot+vue+redis+mongodb+spark等大数据技术构建的图书推荐系统,课程设计项目,可用于毕设

    基于springboot+vue+redis+mongodb+spark等大数据技术构建的图书推荐系统,课程设计项目,可用于毕设 后端 Spring Boot Redis MongoDB 前端 Vue Element-ui Axios 推荐服务 Spark Zookeeper Kafka Flume 任务调度 ...

    Memcached Redis MongoDB对比

    Memcached、Redis和MongoDB都是流行的数据库解决方案,它们各自具有不同的特点和应用场景。以下是这三种技术之间的对比分析。 性能: 这三种数据库都具备高TPS(每秒事务处理数),意味着它们都能够处理大量的数据...

    分布式数据库面试专题系列:Memcached+Redis+MongoDB-06.rar

    在这个面试专题系列中,我们将聚焦于三个广受欢迎的分布式数据库技术:Memcached、Redis和MongoDB。 1. **Memcached**: - **简介**:Memcached是一款高性能、分布式内存对象缓存系统,用于减轻数据库负载,提升...

    MySQL、Redis、MongoDB 零基础入门

    MySQL、Redis、MongoDB 零基础到入门系统性学习(详)

    一款Linux、数据库、Redis、MongoDB统一管理平台.docx

    Linux、数据库、Redis、MongoDB 统一管理平台 一、Linux 统一管理平台 Linux 统一管理平台是基于 DDD(领域驱动设计)分层架构实现的,提供了 ssh 终端、文件查看和操作、脚本管理执行、进程操作、运行状态查看等...

    redis-mongodb-zookeeper-memcache安装

    此时,会在 `src` 目录下生成一系列可执行文件,包括用于性能测试的 `redis-benchmark`、用于修复出问题的 RDB 文件的 `redis-check-dump`、Redis 的客户端 `redis-cli`、Redis 的服务端 `redis-server`、用于修复出...

    NOSql(Redis,mongodb)

    Redis、MongoDB 的帮助类及示例代码

    ssm框架整合redis+mongodb实例

    SSM框架整合Redis和MongoDB是一项常见的技术实践,它结合了Spring、SpringMVC和MyBatis这三大Java开发中的主流框架,同时引入了Redis作为缓存系统,MongoDB作为NoSQL数据库,以提高应用程序的性能和数据处理能力。...

    redis,mongodb.docx

    Redis 和 MongoDB 概念和应用 Redis 概念 Redis 是一个开源的、基于内存的数据结构存储系统,可以用作数据库、消息队列、缓存等。Redis 的主要特点包括: * 基于内存的存储:Redis 将数据存储在内存中,以提高...

    maven(jersey+redis+mongodb+spring)集成

    【标题】:“maven(jersey+redis+mongodb+spring)集成” 在现代软件开发中,集成多种技术栈是常见的需求。"maven(jersey+redis+mongodb+spring)集成"指的是使用Maven作为项目构建工具,将Jersey用于RESTful API开发...

    nosql课程设计、教学设计、Redis,MongoDB课程设计,HBase教学设计

    nosql课程设计、教学设计、Redis,MongoDB课程设计,HBase教学设计nosql课程设计、教学设计、Redis,MongoDB课程设计,HBase教学设计nosql课程设计、教学设计、Redis,MongoDB课程设计,HBase教学设计nosql课程设计、...

    nosql视频教程,包含redis、mongodb等视频资料

    总的来说,这个 NosQL 视频教程旨在帮助学习者掌握Redis和MongoDB的基本操作及高级特性,理解NoSQL数据库的设计理念,并学会在实际项目中灵活应用。通过深入学习,您可以提升自己在大数据处理和分布式系统领域的专业...

    Redis/MongoDB 接口封装(C++)

    7. 结合 Redis 模块和 MongoDB 模块,开发 HierarchicalModule 分层数据模型 构造一个 Redis 缓存层 + MongoDB 持久层的后台 Server 架构 并通过简单方便的接口供上层程序员使用,具体的数据分层处理对上层程序员...

    基于MySQL、Redis和MongoDB数据库开发命令行新闻管理系统

    在构建一个基于MySQL、Redis和MongoDB数据库的命令行新闻管理系统时,我们需要深入了解这三种数据库系统的特点、使用场景以及如何通过Python进行操作。这个项目旨在为初学者提供一个实践平台,帮助他们熟悉数据库...

Global site tag (gtag.js) - Google Analytics