redis memcachemongodb的优缺点和应用场景

Posted autofelix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis memcachemongodb的优缺点和应用场景相关的知识,希望对你有一定的参考价值。

〝 古人学问遗无力,少壮功夫老始成 〞

redis、 memcache、mongodb这三种Nosql的数据库中,很多小伙伴对其中的优缺点并不能很好的了解到位,当在实际应用场景中的时候,不知道选择哪种缓存进行自己项目的部署,很是手忙脚乱,如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们。

目录

一、简介

 二、redis的优缺点

三、mongodb的优缺点

四、memcached的优缺点

五、各自应用场景


一、简介

  • redis︰是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是读写性能高。redis是内存型KV数据库(键值存储数据库,其数据按照键值对的形势进行组织、索引、存储),不支持二级索引,支持list,set等多种数据格式。适合存储全局变量,适合读多写少的业务场景。很适合做缓存。
  • mongodb︰是文档型的非关系型数据库,使用bson结构。其优势在于查询功能比较强大,能存储海量数据,缺点是比较消耗内存。一般可以用来存放评论等半结构化数据,支持二级索引。 适合存储json类型数据,不经常变化。
  • memcached︰是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。

 二、redis的优缺点

  • 优点
  • 支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算)
  • 支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段
  • 支持灾难恢复,主从复制。主机会自动将数据同步到从机,可以进行读写分离。
  • 支持pub/sub消息订阅机制,可以用来进行消息订阅与通知
  • 缺点
  • redis不支持自动容错和恢复功能,主从当机都会导致前端读写失败,需手动前端Ip或者机器重新启动
  • 主机宕机,主从数据复制过程中,数据未完全复制到从机。会出现数据不一致。
  • redis较难支持在线扩容,当集群数据达到上限在线扩容变得复杂。
  • Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒
  • Redis在string类型上会消耗较多内存,可以使用dict(hash表)压缩存储以降低内存耗用
  • 支持简单的事务需求,但业界使用场景很少,并不成熟

三、mongodb的优缺点

  • 优点
  • 文档结构的存储方式,能够更便捷的获取数据
  • 内置GridFS,支持大容量的存储
  • 内置Sharding,分片简单
  • 海量数据下,性能优越
  • 支持自动故障恢复(复制集)
  • 缺点
  • 不支持事务操作
  • 占用空间过大
  •  mongodb没有如mysql那样成熟的维护工具
  • 无法进行关联表查询,不适用于关系多的数据
  • 复杂聚合操作通过mapreduce创建,速度慢
  • 模式自由,  自由灵活的文件存储格式带来的数据错误

四、memcached的优缺点

  • 优点
  • 使用多台memcache服务器,可以均衡请求,避免所有请求都冲进一台memcache服务器,导致服务器挂掉。
  • 一台memcache服务器的容量毕竟有限,可以使用多台memcache服务器,增加缓存容量
  • 利用memcache分布式特性
  • Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS
  • 缺点
  • 无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失。
  • 存储数据有限制:1M,大于1M,认为就行分割,成为内存碎片
  • 只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。
  • 无法进行数据同步,不能将MC中的数据迁移到其他MC实例中。
  • 内存回收不能及时,惰性删除

五、各自应用场景

  • redis︰场景较多,比如分布式架构,做session共享,高速缓存
  • mongodb︰日志记录、内容管理或者博客平台,比如评论系统
  • memcached︰服务器间数据共享、分布式

以上是关于redis memcachemongodb的优缺点和应用场景的主要内容,如果未能解决你的问题,请参考以下文章

Redis常见的几种使用方式及其优缺点

redis11_Redis的主从复制先了解待重新看教程redis的集群redis 集群的优缺点

redis 和 mongodb 比起来优缺点是啥?

说说redis持久化方式?分别优缺点是什么?redis更新策略是什么?

为什么分布式一定要有redis,redis的一些优缺点

Redis 优缺点