Redis,MemCached,MongoDB 概述

调研项目主要有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

转载于:https://www.cnblogs.com/zsmynl/p/3539018.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 正则 回溯,php 正则表达式效率 贪婪、非贪婪与回溯分析

先扫盲一下什么是正则表达式的贪婪,什么是非贪婪?或者说什么是匹配优先量词,什么是忽略优先量词?好吧,我也不知道概念是什么,来举个例子吧。某同学想过滤之间的内容,那是这么写正则以及程序的。…

Abiword页面布局

Abiword页面布局 AP_Win32FrameImpl::_DocumentWndProc 文档窗口过程函数在WM_SIZE消息中设置FV_View对象的整体尺寸,跟窗体的:设备单位 转换成:布局单位。m_iWindowWidth 19695,m_iWindowHeight 8520 设备单位和布局单位的比例是…

php图片编辑失真,PHP处理图片固定大小 不失真 不变形

由于工中使用到此代码 借鉴了各位前辈们代码的基础上修改而来 如果您的项目中有需要此代码 要以尽情的复制和修改 ;如果您有更好的代码烦请告知本人 。我将感激不尽下面由上代码//图像处理类class Image {private $file;//图片地址private $width;//图片长度privat…

abiword Namespace List

abiword Namespace List Here is a list of all namespaces with brief descriptions: abicollab 这个命名空间以及下面的abicollab::service均是在线协作相关。abicollab::service 这个命名空间是在线协作相关。AiksaurusImpl 词库相关,命名空间名字翻译&#xff1…

ios php 表单提交图片上传,axios发送post请求提交图片表单步骤详解

这次给大家带来axios发送post请求提交图片表单步骤详解,axios发送post请求提交图片表单的注意事项有哪些,下面就是实战案例,一起来看一下。DOME接口const userUploadAtt (File,config) > axios.post("接口",File,config)处理数…

solr4.6本地数据提交异常

初次学习solr的时候不能把dist文件夹所有的包都导入工程中,这样会有slf4j异常,这是因为slf4j版本冲突导致的。一个一个jar的导入的话,中间还是有许多异常出在哪个jar包中不清楚,所以我把我遇到的异常整理了一下。 异常一&#xff…

php 文件内容对比,php 比较两个文件是否相同

-### php比较两个文件是否相同小一点的文件直接实用内置函数就可以了function md5_files($filename,$filename1){$file1 md5_file($filename);$file md5_file($filename1);if($file $file1){return "文件相同";}else{return "文件不同";}}md5_file()…

今日心得:给自己写信

1.tomorrow is another day 2.有一种人一认识就觉得温馨 3.这个世界只在乎你是否达到了一定的高度,不在乎你是站在巨人的肩膀还是垃圾上上去的 4.花儿总要在风雨的洗礼下盛开 5.有一种“无能为力”叫宿命 6.幸福是什么?有很多幸福的瞬间,幸福…

Hibernate READ_WRITE CacheConcurrencyStrategy如何工作

介绍 在我以前的文章中,我介绍了NONSTRICT_READ_WRITE二级缓存并发机制。 在本文中,我将使用READ_WRITE策略继续本主题。 直写式缓存 NONSTRICT_READ_WRITE是一种通读缓存策略,可更新最终无效的缓存条目。 尽管这种策略可能很简单&#xff0…

matlab中的控制语句,MATLAB控制语句

目的:研究控制结构(用于, 是否, 切换, 中断, 继续, 输入/输出功能, 读取和存储数据)。If:If评估逻辑表达式并根据表达式的值执行一组语句。If语句的语法if expression 1statement1elseif expression 2statement 2elsestatement 3end例子>> a7a 7&g…

java.logging的重定向?

java.logging的重定向? 接着昨天的工作。 上面说要重定向java.util.logging.Logger的输出, 发现也不是不可能。 package jmx;import java.util.logging.FileHandler; import java.util.logging.Filter; import java.util.logging.Handler; import java.u…

Spring Enable批注–编写自定义的Enable批注

Spring提供了一系列名称以Enable *开头的注释,这些注释本质上使某些Spring管理的功能可以被激活。 这样的注释的一个很好的例子是EnableWebMvc ,它引入了在基于Spring的应用程序中支持MVC流所需的所有bean。 另一个很好的例子是EnableAsync注释&#xff…

java hashmap替换key,HashMap 用可变对象作为 key 踩坑

点击上方☝Java编程技术乐园,轻松关注!及时获取有趣有料的技术文章做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!作者:Icharlehttps://icharle.com/hashmapkebianobj.html前言在 Ja…

(转)Eclipse平台技术概述

转载:周金根 http://zhoujg.blog.51cto.com/1281471/516833Eclipse:Eclipse平台技术概述2010-10-19 13:35:00标签:Eclipse 休闲 职场原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明…

php post调用api,PHP(CURL)POST数据调用API简单示例

/***一个完整的POST调用API的过程 百度知道*author: bo.xiao*/$url ‘http://zhidao.chanjet.com/restserver/zhidao’;$data array(‘api_key’>’3qQ2Edm62Vd4bAVCwNoxgn0l’,‘method’>’baidu.zhidao.getQuestionList’,‘call_id’>’1308713190’,‘cid’>…

【重温经典算法之二】快速排序

快速排序的思想与归并排序思想类似,都是采用分治法的思想。将一个数组A[l...r]使用快速排序可以分解为三个主要的步骤: 通过随机算法获得数组A中的一个下标k,将A[k]与A[r]交换。将数组分解成左右两个数组,左边数组的值均小于A[r]&…

用随机数发生器射击自己的脚

这将不是说明随机数生成器毕竟不是那么随机的文章之一。 因此,您中的那些人希望获得有关如何破解老虎机,继续前进的指南,在这里什么也看不到。 相反,它是有关一个不太常见的锁争用问题的帖子,该问题隐藏在Java API的随…

谈谈你对php的收获和不足,我的收获与不足

在我们的生活中,会经历很多不同的事情。有些是如流水般奔流向海;有些是如云烟一般消散;有些是能够像年轮般随时间流逝,一圈一圈留在那里,却始终浮现在于脑海,因为她曾经一次一次叮呤着你--“知不足才能自强…

cocos2dx

http://blog.csdn.net/iamlazybone/article/details/19046377 转载于:https://www.cnblogs.com/sgdkg/p/3548017.html

带有光纤的可扩展,健壮和标准的Java Web服务

这篇博客文章讨论了负载下的基准Web服务性能。 要了解有关Web服务性能理论的更多信息,请阅读利特尔定律,可伸缩性和容错 。 使用阻塞和异步IO对Web服务进行基准测试 Web应用程序(或Web服务)如何在负载下,面对各种故障…