NoSQL并不像字面意思那样,并不是说不再使用SQL,不再使用关系数据库,他真正的意思是Not Only SQL,他的出现是为了弥补关系数据库的不足,尤其是是在处理超大量的数据时。NoSQL并不是一个数据库的名字,而是一系列不再局限于关系型的数据库的总称。

下面本文将就目前出现的一些NoSQL做一些简要的介绍,以备获悉,并且本文将不断更新,以补充一些新的NoSQL数据库的介绍,并且摒弃那些不再流行的NoSQL数据库,有关NoSQL的最新的数据库信息,可以从http://nosql-database.org网站上面查阅。另外,本文的大多数Linux下面的实验是在ubuntu系统下进行的。

为了更好的了解NoSQL,这里列出了一些NoSQL常用的提升处理能力的非SQL的一些概念,这些概念会一直进行补充。

概念一:键值存储

数据的存储方式是键值对。这样的数据库处理速度一般很快,查询获取数据的方式一般为通过键或者键的正则表达式。

目前本文包含的NoSQL数据库有:memcached,

memcached  http://memcached.org/ 

该数据库属于把数据存储在内存中的数据库,事实上,当机器断电,内存关闭的时候,memcached也就不复存在,当机器启动,内存重新加载memcached的时候,这已经是一个全新的数据库了,所以需要保存持久的数据一般是不会使用memcached数据库的。由于memcached是全部数据在内存中的,所以具有高速的响应速度,一般被用做高速缓存使用。

memcached数据库是基于键值存储的,并且是临时性的,一些具体的例子如下所示。该例子是使用了Ruby实现。

image

 

这个例子实现了在同一个机子中开辟3个memcached,分别对应不同的端口。Ruby访问memcached就像使用Map一样简单。

在ubuntu下面Ruby需要使用memcache-client库来支持,而这个需要使用gem进行安装,所以ubuntu下面的ruby最好采用1.9以上版本。启动一个memcached的应用实例的命令如下:

memcached –d –p 11211(端口) –u nobody(用户名) –c 1024(最大连接数) –m 64(内存空间)

除此之外,repcached工具实现了memcached多个实例之间,数据的相互复制备份。

 

posted on 2012-09-06 12:49  Yakov  阅读(1413)  评论(0编辑  收藏  举报