memcached环境搭建
Centos6.5下安装memcached以及php的memcached扩展,并整合到Thinkphp中
一:首先搭建memcached服务器
1. 查询资源库是否存在memcahched:yum searchmemcached
2. memcached安装:由于不是root用户固命令为:sudo yum -y installmemcached
3. 查看是否安装成功:memcached -h,出现如下,说明安装成功
4. 配置memcached:vi/etc/sysconfig/memcached
5. 设置不同级别下的开机启动:chkconfig--level 2345 memcached on
6. 开启memchached服务:sudoservice memcached start,并查看运行状态:
memcached-tool 127.0.0.1:11211 stats
二.安装php的memcache扩展
1.打开pecl.php.net网站,去里面搜索memcache相关扩展,里面也有memcached的
2.点开memcache,我这里用的是2.2.7版本,找到链接下载,使用命令:
wgethttp://pecl.php.net/get/memcache-2.2.7.tgz
3.解压文件 :tar -zxvfmemcache-2.2.7.tgz
4.进入目录:cd memcache-2.2.7,并查找phpize命令所在目录,直接在本目录中执行:/usr/local/php/bin/phpize,运行后会多出些文件:
5.配置:./configure--with-php-config=/usr/local/php/bin/php-config
6.编译,运行:make &&make install
三.安装php的memcached扩展
说明:
安装memcached扩展,要比memcache多一步,首先安装libmemcached
1.下载:
wget http://launchpad.net/libmemcached/1.0/1.0.9/+download/libmemcached-1.0.9.tar.gz
解压:tar -zxvf libmemcached-1.0.9.tar.gz
http://xg2007524.blog.51cto.com/869106/1103023
2.cd libmemcached--1.0.9.tar.gz
3../configure –with-memcached
4.编译安装:make && make install
5.同上下载安装memcached扩展
下载:wget http://pecl.php.net/get/memcached-2.2.0.tgz
解压:tar -zxvf memcached-2.2.0.tgz
6.进入cdmemcached-2.2.0.tgz,执行:/usr/local/php/bin/phpize
6.配置:./configure--enable-memcached --with-php-config=/usr/local/php/bin/php-config--with-libmemcached-dir=/usr/local/libmemcached/include/libmemcached
7.编译安装:make &&make install
8.现在开始编辑php配置文件:vim/etc/php.ini,文件里加上三句:
extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226"//扩展库路径
extension=memcache.so //扩展名字,这是我们前面刚安装的memcache扩展
extension=memcached.so //这是memcached的扩展
9.重启服务:
a):关闭nginx服务:sudo /usr/local/nginx-1.8.0/sbin/nginx-s stop
b):关闭php-fpm服务:kill allphp-fpm
(如何此命令关不了,就查找进程号kill掉:sudo netstat -anp |grep php)
c):开启php-fpm:sudo /usr/local/php/sbin/php-fpm -c /etc/php.ini -y /usr/local/php/etc/php-fpm.conf(将php.ini配置里面的最新数据重新加载进来)
d):启动nginx服务:sudo/usr/local/nginx-1.8.0/sbin/nginx
10.测试:
代码示例:
<?php
$memcache = new Memcache;
$memcache->connect('182.92.196.241', 11211) or die ("Could notconnect");
$key = md5('www.emule.com');
$cache_result = array();
$cache_result = $memcache->get($key);
if($cache_result){
//那我们直接取出缓存的内容就可以了
$demos_result=$cache_result;
echo "I got thecache<br/>";
} else {
$demos_result =array("a","b","c");
echo "This is thefirst time visited, no cache<br/>";
$memcache->set($key,$demos_result, MEMCACHE_COMPRESSED, 1200);
}
foreach($demos_result as$row){
echo$row."<br/>";
}
?>
四.Thinkphp的memcache缓存配置
1.在项目的配置文件里加上memcache配置项
2.示例代码测试:
3.打开本机命令窗口,telnet查看服务器内存 “test” 数据,出现数据表示成功:
cmd :telnet 182.92.196.24111211