远行的心 发表于 2018-12-24 12:45:39

NoSQL系列(1)——memcached源码安装使用

0. 引言
  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 技术,计划会写三篇文章,主要作为入门了解之用。

1. 如何安装 memcached
  作为memcached数据库的第一篇,我们就先从环境安装开始说起吧。安装方法比较简单,权当一个记录了解吧。
  系统环境: CentOS7
  memcached 运行需要有 libevent 库的支持,因为memcached需要支持非阻塞的IO访问。

1.1 源码安装 libevent

cd /usr/local/src/
wgetwget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
tar zxvflibevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent/
make && make install
1.2 源码安装 memcached

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

2. 启动 memcached

/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。
也可以启动多个守护进程,不过端口不能重复。

3. 验证监听端口

# 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
4. 总结
  这篇就简单介绍一下 memcached的功能和安装步骤吧。下一篇分析一下它的内存使用方式。



页: [1]
查看完整版本: NoSQL系列(1)——memcached源码安装使用