nosql介绍、memrcached介绍、安装memcached、查看memcachedq状态

1.nosql介绍

非关系型数据库就是NoSQL,关系型数据库表明MySQL
对于关系型数据库来讲,是须要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量很是大的时候就很耗费时间和资源,尤为是数据是须要从磁盘里去检索
NoSQL数据库存储原理很是简单(典型的数据类型为k-v),不存在繁杂的关系链,好比mysql查询的时候,须要找到对应的库、表(一般是多个表)以及字段。
NoSQL数据能够存储在内存里,查询速度很是快
NoSQL在性能表现上虽然能优于关系型数据库,可是它并不能彻底替代关系型数据库
NoSQL由于没有复杂的数据结构,扩展很是容易,支持分布式
k-v形式的:memcached、redis 适合储存用户信息,好比会话、配置文件、参数、购物车等等。这些信息通常都和ID(键)挂钩,这种情景下键值数据库是个很好的选择。
文档数据库:mongodb 将数据以文档的形式储存。每一个文档都是一系列数据项的集合。每一个数据项都有一个名称与对应的值,值既能够是简单的数据类型,如字符串、数字和日期等;也能够是复杂的类型,若有序列表和关联对象。数据存储的最小单位是文档,同一个表中存储的文档属性能够是不一样的,数据可使用XML、JSON或者JSONB等多种形式存储。
列存储 Hbase
图 Neo4J、Infinite Graph、OrientDBmysql

2.memrcached介绍

Memcached是国外社区网站LiveJournal团队开发,目的是为了经过缓存数据库查询结果,减小数据库访问次数,从而提升动态web站点性能。web

数据结构简单(k-v),数据存放在内存里
多线程
基于c/s架构,协议简单
基于libevent的事件处理
自主内存存储处理(slab allowcation)
数据过时方式:Lazy Expiration 和 LRU
nosql介绍、memrcached介绍、安装memcached、查看memcachedq状态
Slab Allocation的原理
将分配的内存分割成各类尺寸的块(chunk), 并把尺寸相同的块分红组(chunk的集合),每一个chunk集合被称为slab。
Memcached的内存分配以Page为单位,Page默认值为1M,能够在启动时经过-I参数来指定。
Slab是由多个Page组成的,Page按照指定大小切割成多个chunk。
nosql介绍、memrcached介绍、安装memcached、查看memcachedq状态
Growth factor
Memcached在启动时经过-f选项能够指定 Growth Factor因子。该值控制chunk大小的差别。默认值为1.25。
经过memcached-tool命令查看指定Memcached实例的不一样slab状态,能够看到各Item所占大小(chunk大小)差距为1.25
命令:# memcached-tool 127.0.0.1:11211 displayredis

Memcached的数据过时方式
Lazy Expiration 
Memcached 内部不会监视记录是否过时,而是在get时查看记录的时间戳,检查记录是否过时。这种技术被称为lazy(惰性)expiration。所以,Memcached不会在过时监视上耗费CPU时间。
LRU
Memcached会优先使用已超时的记录的空间,但即便如此,也会发生追加新记录时空间不足的状况,此时就要使用名为Least Recently Used(LRU)机制来分配空间。顾名思义,这是删除“最近最少使用”的记录的机制。所以,当内存空间不足时(没法从slab class获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配给新的记录。从缓存的实用角度来看,该模型十分理想。sql

3.3.安装memcached

yum install -y memcached libmemcached libevent
systemctl start memcached
vim /etc/sysconfig/memcached 能够配置参数
好比加上监听的ip,能够把OPTIONS="" 改成OPTIONS="127.0.0.1"
其中-m指定memcached分配内存
-c指定最大并发数
-u指定运行memcached服务的用户mongodb

4.查看memcachedq状态

memcached-tool 127.0.0.1:11211  stats
或者echo stats |nc 127.0.0.1 11211  须要安装nc工具  yum install -y nc
若安装libmemcached后,可使用命令
memstat --servers=127.0.0.1:11211 查看memcached服务状态数据库