Redis、Memcached、MongoDB对比


Redis 简介:
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
支持服务器端的数据操作:支持多种数据结构和更丰富的数据操作;


Memcached 简介:
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。
Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、
Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。
Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。
Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。
本质上,它是一个简洁的key-value存储系统。
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。


MongoDB 简介:
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。








Redis  
支持服务器端的数据操作:
支持多种数据结构和更丰富的数据操作;
性能对比:只使用单核;
内存使用效率对比:采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached;
数据持久化:支持
存储内存:所有数据并不是一直存储在内存中,当物理内存用完时,(很久没用)值会被交换持久化到磁盘,同时在内存中清除;
一致性:支持事务,比较脆,仅能保证事务中的操作按顺序执行,优于MongoDB;
应用场景较小数据量的性能和运算,适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序,例如:股票价格、数据分析、实时数据搜集、实时通讯。


Memcached 
支持服务器端的数据操作:
将数据拿到客户端来进行类似的修改再set回去(增加了网络IO的次数和数据体积);
性能对比:使用多核(在100k以上的数据中,Memcached性能要高于Redis);
内存使用效率对比:仅支持简单的key-value结构,存储的话,Memcached的内存利用率更高;
数据持久化:不支持
存储内存:所有数据存在内存中,是全内存的数据缓冲系统
一致性:支持事务操作;
应用场景: 适合大型的分布式系统、数据库前段缓存、服务器间数据共享(登录-(中间存储)-查询)。
不适合应用的场景:缓存的数据量比较小、缓存的数据需要持久化。


MongoDB
性能对比:
依赖内存,TPS非常高,Redis优于MongoDB
存储内存:所有数据存在内存中(适合大数据量存储,依赖系统虚拟内存,采用镜像文件存储;内存占用率比较高,官方建议独立部署
在64位系统)
一致性:不支持事务,靠客户端保证;
应用场景: 海量数据的访问效率提升

 

























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值