认识Memcached
Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的Hash表,所以支持任意存储类型的数据。很多网站通过使用Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问数据的网站。Memcached是典型的C/S架构,因此需要安装Memcached服务端与MemcachedAPI客户端。Memcached服务端是用C语言编写的,而Memcached API客户端可以用任何语言来编写,如PHP、Python、 Perl等,并通过Memcached协议与Memcached服务端进行通信。
当Web客户端发送请求到Web服务器的应用程序时,应用程序会通过调用Memcached API客户端程序库接口去连接Memcached服务器,进而查询数据。如果此时Web客户端所请求的数据已经在Memcached服务端中缓存,则Memcached服务端会将数据返回给Web客户端;如果数据不存在,则会将Web客户端请求发送至MySQL数据库,由数据库将请求的数据返回给Memcached以及Web客户端,与此同时Memcached服务器也会将数据进行保存,以方便用户下次请求使用。
Memcached缓存机制
缓存是常驻在内存的数据,能够快速进行读取。而Memcached就是这样一款非常出色的缓存软件,当程序写入缓存数据请求时,Memcached的API接口将Key输入路由算法模块路由到集群中一台服务器,之后由API接口与服务器进行通信,完成一次分布式缓存写入。
安装Memcached案例
本案例使用两台CentOS 7系统和一台Windows 7完成,两台CentOS 7中一台是Memcached服务端,另一条是基于LAMP架构进行Memcached扩展的Memcached API客户端
Memcached服务器IP: 192.168.10.172
主要软件包:
libevent-2.1.8-stable.tar.gz
memcached-1.5.6.tar.gz
Memcached API客户端IP:192.168.10.154
主要软件包:
httpd-2.4.29.tar.gz
mysql-5.6.26.tar.gz
php-5.6.11.tar.bz2
libevent-2.1.8-stable.tar.gz
memcached-1.5.6.tar.gz
测试主机IP:192.168.10.145
安装Memcached服务器
1、解压相关软件包
tar xzvf memcached-1.5.6.tar.gz -C /opt/
tar xzvf libevent-2.1.8-stable.tar.gz -C /opt/
2、Memcached服务器端操作
cd /opt/libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent //指明安装路径
make && make install
cd /opt/memcached-1.5.6
./configure \
--prefix=/usr/local/memcached \ //指明安装路径
--with-libevent=/usr/local/libevent/ //指明libevent安装路径
make && make install
ln -s /usr/local/memcached/bin/* /usr/local/bin/
memcached -d -m 32m -p 11211 -u root //开启服务,-d守护进程 -m缓存大小32M -p端口11211
netstat -anpt | grep memc //查看端口,确认开启
systemctl stop firewalld.service
setenforce 0 //关闭防火墙和安全功能