NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型数据库,因为NoSQL不仅仅是指一种数据库。就像关系型数据库中有MySQL和Oracle等类型,NoSQL也有memcached、MongoDB和redis等。
NoSQL数据库存储原理非常简单(典型的数据类型为k-v),不存在繁杂的关系链,比如mysql查询的时候,需要找到对应的库、表(通常是多个表)以及字段。NoSQL数据可以存储在内存里,查询速度非常快,因此NoSQL数据库随着近年互联网海量数据需求的发展,也迅速占据了市场。虽然,NoSQL在性能表现上优于关系型数据库,但是它并不能完全替代关系型数据库。NoSQL支持分布式存储,但是它的分布式是靠客户端算法实现,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。在动态系统中减少数据库负载,提升性能。
memcache模块是一个高效的守护进程,提供用于内存缓存的过程式程序和面向对象的方便的接口,特别是对于设计动态web程序时减少对数据库的访问。它的适用场合,是那些对数据访问非常频繁的场景。
现在打算了解一下NoSQL 技术,计划会写三篇文章,主要作为入门了解之用。
作为memcached数据库的第一篇,我们就先从环境安装开始说起吧。安装方法比较简单,权当一个记录了解吧。
系统环境: CentOS7
memcached 运行需要有 libevent 库的支持,因为memcached需要支持非阻塞的IO访问。
cd /usr/local/src/
wget wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
tar zxvf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent/
make && make install
wget https://www.memcached.org/files/memcached-1.5.7.tar.gz
tar -zxvf memcached-1.5.7.tar.gz
./configure --with-libevent=/usr/local/libevent --prefix=/usr/local/memcached
make && make install
netstat -lntp
/usr/local/memcached/bin/memcached -d -m 100 -u root -p 11211 -c 256 -P ./memcached.pid
参数说明:
-d 选项是启动一个守护进程。
-m 是分配给Memcache使用的内存数量,单位是MB。
-u 是运行Memcache的用户。
-l 是监听的服务器IP地址。
-p 是设置Memcache监听的端口。
-c 选项是最大运行的并发连接数,默认是1024。
-P 是设置保存Memcache的pid文件,保存在 /tmp/memcached.pid。
也可以启动多个守护进程,不过端口不能重复。
[root@cenvm72 memcached-1.5.7]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9593/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1073/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2173/master
tcp 0 0 0.0.0.0:12000 0.0.0.0:* LISTEN 20089/memcached
tcp6 0 0 :::80 :::* LISTEN 9593/nginx: master
tcp6 0 0 :::22 :::* LISTEN 1073/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2173/master
tcp6 0 0 :::12000 :::* LISTEN 20089/memcached
这篇就简单介绍一下 memcached的功能和安装步骤吧。下一篇分析一下它的内存使用方式。
原文地址:http://blog.51cto.com/hellocjq/2096078