文章目录
1.memcache介绍
memcache是高性能的分布式内存式的高速缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
MemCache的工作流程:
先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。
注意:memcache是php的扩展模块,memcached是主程序
2.LNMP实现memcache
2.1 安装memcache插件
ln -s /usr/local/lnmp/php/bin/* /usr/local/bin/
做Php软链接
source /etc/profile
使环境变量生效
yum install -y autoconf
tar zxf memcache-4.0.5.2.tgz
解压软件包
cd memcache-4.0.5.2/
phpize
在目录下生成软件配置目录
./configure --with-php-config=/usr/local/lnmp/php/bin/php-config
预编译,指定php配置文件路径
make && make install
编译安装
注意:php的扩展模块都可以用phpize在目录下生成配置目录
2.2 配置memcache的编译目录到配置文件
vim /usr/local/lnmp/php/etc/php.ini
762 extension_dir = /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20190902/
914 extension=openssl.so
915 extension=memcache.so
/etc/init.d/php-fpm reload
重新加载配置
2.3 设置memcached服务
yum install -y memcached.x86_64
systemctl start memcached.service
测试:
yum install -y telnet
telnet localhost 11211
stats ##查看状态
set name 0 0 6
get name
delete name
2.4 测试memcache加速访问
cp /soft/memcache-4.0.5.2/memcache.php example.php /usr/local/lnmp/nginx/html/
拷贝测试页到nginx发布目录
vim /usr/local/lnmp/nginx/html/memcache.php
nginx -s reload
重新加载nginx
vim /usr/local/lnmp/nginx/html/example.php
测试: