NoSQL介绍
NoSQL数据库的四大分类
键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。[3] 举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
列存储数据库。
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak.
文档型数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。[2] 如:Neo4J, InfoGrid, Infinite Graph.
Memcached介绍
Memcached是什么:
Memcached是一套分布式缓存系统。分布式表示你可以在多台服务器上安装memcached服务。达到集群效果。
高速,memcached中的所有数据都维护在内存中的。
Memcached的作用:
当应用的访问量特别大的时候,数据库访问量也会特别大。memcached的出现可以在应用和数据库之间增加一个缓冲层。当应用第一次从数据库读取数据后,后面的数据访问都可以从memcached中读取,从而减轻数据库服务器的压力。
怎样理解Memcached:
理解为只有一张表的数据库,这张表有两个字段(key,value).value字段就是保存的数据,key就是保存数据的id。
Memcached的使用场景:
非持久化存储:对数据存储要求不高。
分布式存储:不适合单机使用。
key/value的存储:格式简单,不支持List、Array数据格式。
Memcached安装
- 检查libevent, libevent-devel库是否已经安装
rpm -qa|grep libevent
输出中必须包含libevent, libevent-deve, 如果缺失,使用以下命令安装:
yum install libevent
yum install libevent-devel
安装完毕再复查之:rpm -qa|grep libevent, 确保安装正确。 - 准备安装memcached
cd /usr/local/src
wget www.memcached.org/files/memcached-1.5.20.tar.gz
tar zxvf memcached-1.5.20.tar.gz
cd memcached-1.5.20
./configure --prefix=/usr/local/memcached
make
make install - 启动
/usr/local/memcached/bin/memcached -d -l 127.0.0.1 -m 1024 -u nobody
-d : 以后台方式运行
-l : 监听地址及端口(默认为11211),请换成自己期望的配置
-m: 缓存内存总大小(MB)
-u : memcached工作进程的系统帐号
其它参数可通过/usr/local/memcached/bin/memcached -h 获得。 - 测试
telnet 127.0.0.1 11211
stats
quit - 添加到启动项
向/etc/rc.local中加入
/usr/local/memcached/bin/memcached -d -l 127.0.0.1 -m 1024 -u nobody即可。