❶ php怎么开启memcache
下载memcache安装包和php扩展文件php_memcache.dll。解压memcache,把memcached移动到C盘。
单击开始菜单,运行“cmd”。
cd .. //进入c盘
cd memcached //进入memcache目录
memcache.exe -d install //安装memcache服务
设置php:找到php安装目录,打开php.ini文件。找到配置文件里允许支持扩展的区域exetension=。。,添加一行exetension=php_memcache.dll。
把php扩展文件php_memcache.dll移动到php安装目录下的ext目录下。注意在php.ini中要设置好exetension目录。php_memcache.dll此文件需要先在网上下载下来!
设置apache:
打开apache配置文件httpd.conf,找到LoadMole加载模块区域。去掉前面的“LoadMole mem_cache_mole moles/mod_mem_cache.so”#号
重启apache服务。linux下重启使用命令:service httpd restart。
然后就大功告成!
❷ 使用php Memcache模块如何正确遍历所有KEY以及VALUE
在php提供的用于与memcached交互的扩展模块中有memcached与memcache,前者提供方法getAllKeys用于遍历所有Memcached服务器上的key,但是并不保证原子操作,而后者却没有提供任何方法,虽然在PHP官方
文档中有人给出使用方法getExtendedStats来间接获取Memcached服务器上的所有key,但是给出的代码是有不少坑的,如果拿来就用,对于cluster的memcached服务器而言,有些问题就需要指出来。
下面将给出官方文档中的代码,并指出可能面临的问题,代码如下:
<?php
/**
*Functiontogetallmemcachekeys
*@authorManishPatel
*@Created:28-May-2010
*/
functiongetMemcacheKeys(){
$memcache=newMemcache;
$memcache->connect('127.0.0.1',11211)ordie("");
$list=array();
$allSlabs=$memcache->getExtendedStats('slabs');
$items=$memcache->getExtendedStats('items');
foreach($allSlabsas$server=>$slabs){
foreach($slabsAS$slabId=>$slabMeta){
$cmp=$memcache->getExtendedStats('cachemp',(int)$slabId);
foreach($cmpAS$keys=>$arrVal){
foreach($arrValAS$k=>$v){
echo$k."<br>";
}
}
}
}//EOgetMemcacheKeys()?>
在上述代码中,如果用于获取单个memcached服务器上的key,是不存在任何问题,但是获取连接池中的多个memcached所有key就存在问题,会发现打印出重复的key,问题就在于当使用getExtendedStats用去特定$slabID
上的信息时,返回的是连接池中所有的服务器上的特定$slabId的存储的keys信息。当$server为"127.0.0.1:11214"且$slabId为0将变量$cmp的信息打印出如下所示:
array(2){
["127.0.0.1:11214"]=>
array(1){
["course_schools__??¨é?¨"]=>
array(2){
[0]=>
string(1)"0"[1]=>
string(10)"12"}
}
["127.0.0.1:11216"]=>
array(1){
["monitorMemcache"]=>
array(2){
[0]=>
string(2)"10"[1]=>
string(10)"12"}
}
}
当$server为"127.0.0.1:11216"且$slabId为0将变量$cmp的信息打印出如下所示:
array(2){
["127.0.0.1:11214"]=>
array(1){
["course_schools__??¨é?¨"]=>
array(2){
[0]=>
string(1)"0"[1]=>
string(10)"12"}
}
["127.0.0.1:11216"]=>
array(1){
["monitorMemcache"]=>
array(2){
[0]=>
string(2)"10"[1]=>
string(10)"12"}
}
}
❸ php 中的 memcache 是什么 怎么用的 越详细越好,求大神 在线等
memcache 是一种缓存服务器软件,安装了该软件的电脑,即可称为 缓存服务器。
memcache 缓存服务器是用来缓解 关系型数据库(例如 Mysql)负载压力的,第一次访问 mysql数据库(select)后,得到的数据放到缓存服务器里,设定个生命周期(例如7天),然后7天内所有访问该数据的语句就不用再到数据里查询了,直接从缓存服务器里取。
而你所问的 php中的 memcache 是一种客户端,客户端是用来访问服务端的(例如用IE浏览器访问网站,IE浏览器就是客户端)。再说具体点,php中的 memcache 就是一种扩展,在php安装目录的 php.ini 配置文件里开启 memcache 扩展后,你就能 用 memcache类实例对象,用memcache对象的各种方法来访问 memcache服务器。
例:
<?php
$mem = new Memcache();//实例化一个对象
//$mem->connect("ip地址",端口号);//连接memcache服务器
$mem->connect("localhost",11211);//连接memcache服务器
//添加数据,如果键名已经存在,则添加失败
$res = $mem->add('name','xiaoqian',MEMCACHE_COMPRESSED,3600);
var_mp($res);
//获取数据
$str = $mem->get('name');
var_mp($str);
?>
详细的怎么开启扩展后续什么的,你在这个我上传的word文档里看看就行了