Windows下的Memcache安装:
1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:memcached
2. 在终端(也即cmd命令界面)下输入 ‘c:memcachedmemcached.exe -d install' 安装
3. 再输入: ‘c:memcachedmemcached.exe -d start' 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.下载php教程_memcache.dll,请自己查找对应的php版本的文件
5. 在C:winntphp.ini 加入一行 ‘extension=php_memcache.dll'
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
memcached的基本设置:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
Memcache环境测试:
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
< hp="" 代码如下="" 复制代码="" $mem="new" memcache;="" $mem-="">connect(”127.0.0.1″, 11211);
$mem->set('key', ‘This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>
memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcache缺点之一却是缺少安全性验证,所以一般而言我们都会把一些访问量大,但是不需要验证的数据放在这里,需要用的时候来这里取,就给数据库减少了很多的负担。一般而言设定个更新时间就好了,1个小时左右更新一次。
windows下安装和测试memcache最为方便,linux只是需要相应的编译包就行了,需要包括memcache的程序文件memcached和memcache在php下的扩展模块php_memcache.dll,网上找找很多,有了这两个就可以开始安装过程了。
1. 在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装
2. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。note: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
3.下载php_memcache.dll,请自己查找对应的php版本的文件
4. 在c:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’
5.重新启动apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
应用方法很简单,在php文件中new一个新的memcache对象,然后调用方法就够行了,memcache的方法不多,常用的就那几个。
首先连接memcache服务器,建立连接:
$mem = new memcache;
$mem->connect('memcache_host', 11211);
11211是设置的端口,memcache_host这里放连接的ip.
设置数据用set方法:
$mem->set(’key’, ‘this is a test!’, 0, 60);
60是过期时间,单位是秒。
获取数据用get方法:、
$val = $mem->get("mykey");
替换数据用replace方法:
$mem->replace(‘key1′, ‘this is replace value’, 0, 60);
删除数据用delete方法:
$mem->delete(‘key1′);
也可以存放数组:
$arr = array(‘aaa’, ‘bbb’, ‘ccc’, ‘ddd’);
$mem->set(‘key2′, $arr, 0, 60);
一个实际运用的例子:
get($key)) ) {
// 在 memcached 中未获取到缓存数据,则使用数据库查询获取记录集。
echo "n".str_pad('read datas from mysql.', 60, '_')."n";
$conn = mysql_connect('localhost', 'test', 'test');
mysql_select_db('test');
$result = mysql_query($sql);
while ($row = mysql_fetch_object($result))
$datas[] = $row;
// 将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。
$mc->add($key, $datas);
} else {
echo "n".str_pad('read datas from memcached.', 60, '_')."n";
}
var_dump($datas);
?>
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....