A-A+

windows下开启高速缓存模块

2012年01月24日 PHP技术文章 暂无评论 阅读 51 views 次

Windows下Memcached的安装配置方法

1、将第一个包解压放某个盘下面,比如在c:\memcached。

2、在终端(也即cmd命令界面)下输入 'c:\memcached\memcached.exe -d install' 安装。

3、再输入: 'c:\memcached\memcached.exe -d start' 启动。(需要注意的: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了)。

4、下载php_memcache.dll 文件,把它放入php文件夹的ext目录中。

5、在php.ini加入一行引用扩展,代码如下:

extension=php_memcache.dll

6、接着在 php.ini 文件里加上:

[Memcache] memcache.allow_failover = 1 memcache.max_failover_attempts=20 memcache.chunk_size =8192 memcache.default_port = 11211
最好就放在刚才写 "extension=php_memcache.dll" 的下面。(这是默认的一些配置)

7、重新启动Apache,然后查看一下phpinfo,如果有 memcache 的说明,那么就说明安装成功啦!

  写一个 example.php 文件(更多使用方法可以参看 PHP 手册里的 Memcache Functions 使用说明),测试代码如下:

connect('localhost', 11211) or die ("Could not connect"); $version = $memcache->getVersion(); echo "Server's version: ".$version."
\n"; $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server"); echo "Store data in the cache (data will expire in 10 seconds)
\n"; $get_result = $memcache->get('key'); echo "Data from the cache:
\n"; var_dump($get_result); ?>
如果输出如下,则测试成功:

Server's version: 1.4.5 Store data in the cache (data will expire in 10 seconds) Data from the cache: object(stdClass)#3 (2) { ["str_attr"]=> string(4) "test" ["int_attr"]=> int(123) }
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和memcached的区别

网上说这个东西是一个c/s结构的软件,确实是如果是c/s结构的话,那就说明必须有一个服务端和一个客户端,所以,server端的就是memcached,client端可以看作是php_memcache.dll,怎么说呢php_memcache.dll提供了一组函数,用来缓存,提取,删除缓存等一系列的操作,而通过这些函数,最终把数据是放到了安装有memcached服务的机器上,可以是本机,也可以是其它网络上的机器。

你可以做下这样的测试,只启用php_memcache.dll中的一些函数,对缓存进行操作,把memcached服务给停用一下,看是否能正常使用。这时候是无法使用的,所以,可以把memcached看作是服务端 php_memcached看作是客户端。可以理解成:memcache通常指的是php扩展,而memcached指的是memcache的服务进程,因为他是c/s结构的。

下载地址:memcached:http://code.jellycan.com/memcached/
php_memcache.dll for php5.2:http://www.digdeeply.info/dd_share/php_memcache_dll-for-php-5.2.zip
根据自己的PHP版本用相应的php_memcache.dll

Memcache 有哪些常用方法

Memcache::add — 添加一个值,如果已经存在,则返回false
Memcache::addServer — 添加一个可供使用的服务器地址
Memcache::close — 关闭一个Memcache对象
Memcache::connect — 创建一个Memcache对象
memcache_debug — 控制调试功能
Memcache::decrement — 对保存的某个key中的值进行减法操作
Memcache::delete — 删除一个key值
Memcache::flush — 清除所有缓存的数据
Memcache::get — 获取一个key值
Memcache::getExtendedStats — 获取进程池中所有进程的运行系统统计
Memcache::getServerStatus — 获取运行服务器的参数
Memcache::getStats — 返回服务器的一些运行统计信息
Memcache::getVersion — 返回运行的Memcache的版本信息
Memcache::increment — 对保存的某个key中的值进行加法操作
Memcache::pconnect — 创建一个Memcache的持久连接对象
Memcache::replace — R对一个已有的key进行覆写操作
Memcache::set — 添加一个值,如果已经存在,则覆写
Memcache::setCompressThreshold — 对大于某一大小的数据进行压缩
Memcache::setServerParams — 在运行时修改服务器的参数

简单的一个实例

<?php 
 $memcache = new memcache;
 $memcache->connect('127.0.0.1',11211) or die('连接失败');
 
 $memcache->set('name',array("一个","两个"));
 
 $memcache->delete('name');
 
 $val = $memcache->get('name');
 
 print_r($val);
 
 $memcache->close();
?>
标签:

给我留言