今天学习了下memcache也就随便记了记,大访问量web项目开发中,为了提高响应速度,减少数据查询运算,那么我们就会选用memcache.本人一直是在windows下开发的。
首先第一步要配置:
1.下载memcache windows的安装包。放到某个盘下面,比如:c:\memcached
2.在运行中输入cmd 然后回车后。再输入c:\memcached\memcached.exe -d install
3.安装成功后,再输入c:\memcached\memcached.exe -d start 启动memcache(以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了)
4.查看自己PHP的版本,下载相应的php_memcache.dll 放到php安装目录下的ext文件夹中
5.查找php.ini文件 加入:extension=php_memcache.dll
6.重新启动apache。查看phpinfo 有没有memcache 。如果存在,安装成功
(我碰到的问题就是phpinfo中没有memcache。但是任务中memcache已经运行。最后,是我的php_memcache.dll的版本不对。。。注意。。。。)
安装成功后,测试下:
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);//转接到我们的Memcache服务器端,第一个参数是服务器的IP地址,也可以是主机名,第二个参数是Memcache的开放端口//保存数据
$mem->set('key1', 'This is first value', 0, 60);//保存一个数据到Memcache服务器上,第一个参数是数据的Key,用来定位一个数据,第二个参数是需要何在的数据内容,第三个参数是一个标记,一般设置为0或者MEMCACHE_COMPRESSED就行了,第四个参数是数据的有效期,即数据在这个时间内有效的,如果过去这个时间,那么会被Memcache服务器端清除掉这个数据,单位是秒,如果设置为0,则是永远有效,这是设置60,就是一分钟有效:$val = $mem->get('key1');//从Memcache服务器端获取一条数据,它只有一个参数,就是需要获取数据的key,我们这里是上一步设置的key1,现在获取这个数据后输出echo "Get key1 value: " . $val ."<br />";//替换数据
$mem->replace('key1', 'This is replace value', 0, 60);//使用replace方法来替换掉上面key1的值,replace方法的参数跟set是一样的,不过参数key1是必须是要替换数据内容的key,$val = $mem->get('key1');echo "Get key1 value: " . $val . "<br />";//保存数组
$arr = array('aaa', 'bbb', 'ccc', 'ddd');$mem->set('key2', $arr, 0, 60);$val2 = $mem->get('key2');echo "Get key2 value: ";print_r($val2);echo "<br />";//删除数据
$mem->delete('key1');//删除一个数据,使用delte接口,参数就是一个key,然后就能够把Memcache服务器这个key的数据删除,最后输出的时候没有结果$val = $mem->get('key1');echo "Get key1 value: " . $val . "<br />"; //清除所有数据$mem->flush();$val2 = $mem->get('key2');echo "Get key2 value: ";print_r($val2);echo "<br />"; //关闭连接$mem->close();?>
正确的结果:
Get key1 value: This is first valueGet key1 value: This is replace valueGet key2 value: Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd ) Get key1 value: Get key2 value: