NoSQL数据库

什么是NoSQL数据库?

非关系型数据库就是NoSQL,关系型数据库代表MySQL;

关系型数据库,是需要吧数据存储到库、表、行、字段中,查询需要根据条件一行行的匹配,需要从磁盘中检索,耗费时间和资源;
NoSQL数据库,存储原理简单(数据类型为K-V),数据可以存储在内存里,查询速度非常快;扩展非常容易,支持分布式;

常见的NoSQL数据库

k-v形式:memcached、redis适合存储用户信息,比如回话、配置文件、参数、购物车等等。这些信息一般与ID(键)挂钩,这种情景下键值数据库是很好的选择;
文档数据库:mongodb将数据以文档的形式存储;
列存储:Hbase
图:Neo4j、Infinite Graph、OrientDB

memcached介绍

特点:缓存数据库查询结果,减少数据库访问次数,恻然提高动态web站点性能;
官网:www.memcached.org

数据结构简单(k-v),数据存放在内存中;重启数据会丢失,重启前必须将数据保存到硬盘中;
多线程;
基于c/s架构,协议简单;
基于libevent的时间处理;
自主内存存储处理(slab allowcation)
数据过期方式:Lazy Expiration 和LRU
~~

安装memcached

源码包

yum install -y libmemcached libevent
yum install -y memcached

启动

systemctl start memcached

配置文件

vim /etc/sysconfig/memcached 
监听的ip,可以将OPTIONS="" 改为OPTIONS="127.0.0.1"
其中-m指定memcached 分配内存,单位为M
-c 指定最大并发数
-u 指的是运行memcached服务的用户
-p 为监听端口

查看运行状态

memcached-tool 127.0.0.1:11211 stats
或者echo stats |nc 127.0.0.1 11211 需要安装nc工具
memstat --servers=127.0.0.1:11211

get_hits:命中了多少
curr_items:缓存了多少