调研项目主要有Redis、 MemCached、 MongoDB,以及Amazon的DynamoDB

Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。

1)  数据模型 作为Key-value型数据库,Redis也提供了键(Key)和值(Value)的映射关系。除了常规的数值或字符串,Redis的键值还可以是以下形式之一: Lists (列表) Sets (集合) Sorted sets (有序集合) Hashes (哈希表) 键值的数据类型决定了该键值支持的操作。Redis支持诸如列表、集合或有序集合的交集、并集、差集等高级原子操作;同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。

2) 持久化:

Redis通常将数据存储于内存中,或被配置为使用虚拟内存。

通过两种方式可以实现数据持久化:使用快照的方式,将内存中的数据不断写入磁盘;或使用类似MySQL的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。

3) 性能同步:

Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给Redis带来了非常优秀的性能,读写操作之间有显著的性能差异。

4) API 语言

支持C、 C++、 C#、 Java、 Javascript、 Lua、 Objective-C、 Perl、 PHP、 Python、 Ruby、 Go等语言,更多请见:Redis 官网

-------------------------------------------------------

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

1) 事件处理

memcached使用libevent库,能在Linux、BSD、Solaris等操作系统上发挥其高性能。libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。

2)数据存储

为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used,最近最少使用)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

3) API语言

支持 C、C#、 C++、 Java、Perl、 PHP、 Python、 Ruby、 Lua等语言,更多请见: Memcached Clients

--------------------------------------------------------

 

MongoDB 是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB服务端可运行在Linux、Windows或IOS平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB,64位平台则非常大。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

1) 特点:高性能、易部署、易使用,存储数据非常方便

2) 功能:面向集合存储,易存储对象类型的数据;支持动态查询,支持完全索引,包含内部对象;支持复制和故障恢复;使用高效的二进制数据存储,包括大型对象(如视频等);自动处理碎片,以支持云计算层次的扩展性

3) 格式:文件存储格式为BSON(一种JSON的扩展);可通过网络访问

4) API语言:C、C#、 C++、Java、JavaScript、 PHP、Ruby、Python、Perl等,更多请见: MongoDB Home 来自:http://blog.csdn.net/sunboy_2050/article/details/8552155

Redis,MemCached,MongoDB 概述的更多相关文章

  1. redis memcached MongoDB

    我们现在使用的模式是,对于直接的key value对需缓存的直接用memcached.对于collection类型就使用Redis.对于大数据量的内容性的东西,我们打算尝试用mongoDB.也正在学习 ...

  2. 面试题-Redis、MongoDB、Memcached[转]

    https://blog.csdn.net/gangsijay888/article/details/81213811 一.缓存 搞懂缓存那些事:https://blog.csdn.net/a7248 ...

  3. Redis、MongoDB及Memcached的区别 Redis(内存数据库)

    Redis.MongoDB及Memcached的区别 Redis(内存数据库) 是一个key-value存储系统(布式内缓存,高性能的key-value数据库).和Memcached类似,它支持存储的 ...

  4. 面试阿里被分布式“搞懵”,Redis、MongoDB、memcached没答上来

    都说大厂面试难,一点也没有错,一线大厂的面试究竟怎么样还得自己亲身经历了才知道.小白面试阿里,就被面试官吊打,一问分布式就被“搞懵”了,Redis.MongoDB.Memcached都没答好,很多没有 ...

  5. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  6. 基于Redis+MySQL+MongoDB存储架构应用

    摘  要: Redis+MySQL+MongoDB技术架构实现了本项目中大数据存储和实时云计算的需求.使用MongoDB切片的水平动态添加,可在不中断平台业务系统的同时保障扩容后的查询速度和云计算效能 ...

  7. Redis和MongoDB的区别(面试受用)

    项目中用的是MongoDB,但是为什么用其实当时选型的时候也没有太多考虑,只是认为数据量比较大,所以采用MongoDB. 最近又想起为什么用MongoDB,就查阅一下,汇总汇总: 之前也用过redis ...

  8. centos7.6编译安装php7.2.11及redis/memcached/rabbitmq/openssl/curl等常见扩展

    centos7.6编译安装php7..11及redis/memcached/rabbitmq/openssl/curl等常见扩展 获取Php的编译参数方法: [root@eus-api-cms-bac ...

  9. redis/memcached可视化客户端工具TreeNMS

    RedisDesktopManager 之前用的redis客户端工具还不错,今天发现一个国产的nosql客户端,还挺方便滴 TreeNMS是一款redis,Memcache可视化客户端工具,采用JAV ...

  10. SSH整合redis和MongoDB错误笔记

    由于毕设中做的是图片搜索网站,选择前端框用SSH,因为之间接触过SSH框架,略有了解,但没有深究,现在在整合redis和mongodb的过程中遇到很多错误,也是十分痛苦,只能通过百度和一步步尝试着解决 ...

随机推荐

  1. select options常用操作

    1.判断select选项中 是否存在Value="value"的option元素 function jsSelectIsExitItem(objSelect,objItemValu ...

  2. shell脚本中的括号和实例

    1.单圆括号和双圆括号 “双圆括号”命令允许将高级的数学表达式放入比较中.格式如下: (( expression )) 除了 test命令(if-then [])使用的标准数学运算符外, 双圆括号还支 ...

  3. 探究Android中Listview显示错乱问题

    问题 最近在项目中遇到过一个很棘手的问题,就是ListView在滑动后就莫名其妙的显示错乱,网上查阅资料后问题很容易的就解决了,但是对于问题产生的原因仍是一知半解,所以不甘心的我定下心来,狠读源码,终 ...

  4. led驅動芯片對LED燈具的要求

    1.LED驅動芯片直流額定輸入電壓范圍應當8 - 40 v,覆蓋廣泛的應用需求.最好的壓縮能力大于45 v.當輸入交流12 v.24 v,簡單的橋式整流器輸出電壓可以遵循電網電壓波動,特別是在高電壓輸 ...

  5. 14.4.4 Redo Log Buffer

    14.4.4 Redo Log Buffer redo log buffer 是内存区域持有数据被写入到redo log. Redo log buffer size 是通过 innodb_log_bu ...

  6. PL/SQL 动态SQL

    declare msql varchar2(200); row_id varchar2(200); begin loop row_id := 'AAATGiAAEAAAuLLAAA'; msql := ...

  7. delphi 通过控件的handle取得控件

    例子代码如下: vartsg:TstringGrid;begintsg:=Tstringgrid(FindControl(handle));//正常使用TstringGrid//tsg......./ ...

  8. 实Schur分解

        前面已经说过LU,Cholesky和QR分解,这次介绍的是实Schur分解.对这个分解的定义是任意一个矩阵A,可有如下形式的分解:               U*A*U' = B;其中B是拟 ...

  9. Generate Parentheses——LeetCode

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  10. OAuth2的学习小结

    Spring Security json Access maven OAUTH2核心参数说明 grant_type参数说明表格: grant_type 说明 authorization_code 标准 ...