phpmemcached教程
❶ Memcache如何安装
1、将下载的memcached.exe文件放到磁盘固定的地方,不要删除。打开开始菜单,在输入框里输入cmd按回车。
❷ php memcached怎么用
memcached是一种缓存技术, 基于c/s模式,他可以把你的数据放入内存,从而通过内存访问提速,因为内存最快的, memcached技术的主要目的提速,
在memachec 中维护了一张大的hashtable表 ,该表是在内存,表的结构是
key value
字串 (字串,数值,数组,对象,布尔,二进制数据,null)
u 安装并使用memcached
安装步骤
(1) 下载memcached软件
(2) 安装
进入cmd ,切换到 memcached.exe 文件所在目录
memcached.exe –d install
(3) 启动memcached
第一种,可以到服务点击启动
第二种, 命令行
memcached.exe –m 200MB –d start 【以deamon方式启动,默认64M】
如果你在启动时,win7启动不成功, 则可以使用如下方法
memcached.exe –p 端口号
转载,仅供参考。
❸ windows下 php memcached 设置最大内存
工具:
memcached-1.2.6-win32-bin.zip MemCached服务端程序(for win)
Memcached Manager win下的MemCached管理工具
安装配置MemCached服务端
下载memcached-1.2.6-win32-bin.zip ,解压后得到memcached.exe,就是memcached的主程序了。比如我们放到MemCached服务器下的C:\Program Files\MemCacheD下
下载安装Memcached Manager ,通过这个来管理memcached的服务端。
打开MemCacheD Manager,点击 add Server,填写服务器信息。我这里直接在本地安装了memcached。如图,填完后点击apply,成功的话右侧会出现服务器。
点击Add Instance添加memcached实例。这里有一些配置信息。Ip,端口,内存等等,不解释了。点击apply后会提示你是否现在启动,我们这里选是
成功后发现右侧已经有实例了,到此服务端配置完毕。
二、php安装Memcached模块支持
1、下载php_memcache.dll模块,
你可以从http://downloads.php.net/pierre/找到对应的版本,
php5.3对应php_memcache-2.2.6-5.3-vc9-x86.zip
将php_memcache.dll放到php\ext目录下,
2、修改php.ini来加入扩展,并并重启apache服务器
在php.ini加入一行引用扩展,代码如下:
extension=php_memcache.dll
接着在 php.ini 文件里加上:
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
最好就放在刚才写 "extension=php_memcache.dll" 的下面。(这是默认的一些配置),重启apache服务器,
然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
测试windows下的Memcached
测试代码如下:
复制代码
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'Hello Memcached!', 0, 60);
$val = $mem->get('key');
echo $val;
?>
复制代码
❹ 如何将PHP session信息缓存到memcached里面
在PHP的ini配置文件里面提供了[Session]相关配置,可以支持将信息存到文件或memcached服务器里面。由配置项session.save_handler = memcached决定。大多数场景,该session数据并不需要持久化,且为了提升网站性能,会选择将session信息缓存到memcached里面。
需要修改php.ini配置文件:
1、session段
找到[Session]段落,修改存储引擎为:
session.save_handler = memcached(注意是带d扩展)
修改存储地址,即OCS访问地址为:
session.save_path = “be6b6b8221cc11e4.m.cnhzalicm10pub001.ocs.aliyuncs.com:11211″(注意带d扩展,则前面不用加tcp://,不带d的扩展需要加)
修改缓存到memcached的key的时间
session.gc_maxlifetime = 1440(单位是秒,强烈建议必须设置一个合理时间,以保证OCS始终只缓存热点数据)
2、memcached段
在php.ini的全局段,建一个单独段落[memcached],然后在空白地方加入下面配置
[memcached]
memcached.use_sasl = On
memcached.sess_binary = On
memcached.sess_sasl_username = “your_ocs_name”
memcached.sess_sasl_password = “your_ocs_password”
memcached.sess_locking = Off
举例:
<?php
$memc = new Memcached();
$memc->setOption(Memcached::OPT_COMPRESSION, false);
$memc->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$memc->addServer(“be6b6b8221cc11e4.m.cnhzalicm10pub001.ocs.aliyuncs.com”, 11211);
$memc->setSaslAuthData(“your_ocs_name”, “your_ocs_password”);
echo $memc->get(“memc.sess.key. ttrct9coa2q62r2sodlq4qf376″);
/*注意这里的key是有前缀的,由php.ini中memcached.sess_prefix字段决定,默认值为“memc.sess.key.”。然后再拼接上面打出来的sessionid“ttrct9coa2q62r2sodlq4qf376”即可。*/
?>
该代码输出如下:
ocs_key|s:13:”session_value”;
即PHP SESSION已经成功写入OCS。
❺ 如何让php环境支持memcache
你是windows 还是linux ,如果linux需要在下载一个libevent插件去支持memcahe.我估计你是windwos.如果有需要Linux 再联系我,下面我说下Windows的安装方法:
1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached
2. 在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装
3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.下载php_memcache.dll,请自己查找对应的php版本的文件
5. 在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
❻ 最近在学习memcached 我php的memcache扩展装了,php.ini配置文件也加了extension=php_memcache.dll,
memcached.exe是服务器需要启动进程。php支持memcache和memcached。现在网上大部分是memcache扩展多,需要下载php_memcache.dll到ext扩展文件中,php.ini里面将扩展开启,到phpinfo里面查看是否有此扩展,然后你就可以进行开发。
❼ 使用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"}
}
}
❽ 如何更新MemcacheD Is Your Friend缓存
步骤如下:
1、php安装Memcached插件。
2、WordPress安装Memcached缓存插件(MemcacheD Is Your Friend)。
3、部署Memcached内存缓存图形化界面监控页面。
❾ 如何在ubuntu 12.04上面为php5.6安装memcached及扩展
apt-get install memcached
启动memcached服务端,使用了memcache用户来启动。
memcached -m 64 -p 11211 -u memcache -l 127.0.0.1
或者使用root用户来启动,都是可以的。
memcached -d -l 127.0.0.1 -p 11211 -m 64 -u root
将memcached服务端加入开机启动,ubuntu 12.04上需要打开/etc/init.d/rc.local来添加,这与centos的也不一样。
vi /etc/init.d/rc.local /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1
或者用root用户来启动。
/usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 64 -u root
安装memcached客户端
客户端的安装分为安装libmemcached和php的memcached扩展。
我们先安装libmemcached,切换目录。
cd /usr/local/src/
下载libmemcached包。考虑到是php5.6,它只能用php-memcached 2.2.0,为了兼容,所以只下载了libmemcached-1.0.18。其实,libmemcached已经有更新的版本了。
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
解压libmemcached-1.0.18。
tar -zxf libmemcached-1.0.18.tar.gz
切换目录到libmemcached-1.0.18。
cd libmemcached-1.0.18
开始编译安装。
./configure make make install
安装完成后,我们找一下memcached.h是在那个目录的,等下要用。
find / -name memcached.h/usr/local/include/libmemcached/memcached.h/usr/local/include/libmemcached-1.0/memcached.h/usr/local/include/libmemcached-1.0/struct/memcached.h/usr/local/src/libmemcached-1.0.18/libmemcached/memcached.h/usr/local/src/libmemcached-1.0.18/libmemcached-1.0/memcached.h/usr/local/src/libmemcached-1.0.18/libmemcached-1.0/struct/memcached.h/usr/local/src/libmemcached-1.0.18/libtest/memcached.h
切换目录。
cd /usr/local/src/
下载php的扩展memcached-2.2.0。如果你是php7,请使用memcached 3x。
wget -c http://pecl.php.net/get/memcached-2.2.0.tgz
解压memcached-2.2.0的包。
tar -zxf memcached-2.2.0.tgz
切换目录到memcached-2.2.0。
cd memcached-2.2.0
在此目录下执行phpize。如果不知道phpize在什么地方,可以用find命令来查找。
/usr/local/php-5.6/bin/phpize
还是在此目录执行./configure。--with-libmemcached-dir的目录就是你刚刚查找出来的memcached.h的目录,它是上面的第一条。include/libmemcached/是编译时会自动查找的目录,所以我们只需要填上/usr/local/就可以了。
./configure --with-php-config=/usr/local/php-5.6/bin/php-config --with-libmemcached-dir=/usr/local/ --disable-memcached-sasl Build complete.Don't forget to run 'make test'. Installing shared extensions: /usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/
编译安装成功后,它提示在/usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/。我们可以用find来查找一下memcached.so。
find / -name memcached.so/usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/memcached.so/usr/local/src/memcached-2.2.0/moles/memcached.so/usr/local/src/memcached-2.2.0/.libs/memcached.so
用vi打开php.ini文件,如果你不知道使用的那个php.ini文件,可以使用phpinfo.php来查看。
vi /home/wwwroot/lamp/etc/php.ini
在php.ini末尾添加下面的代码。
extension = /usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/memcached.so
重启php-fpm
ps aux|grep php-fpm kill -USR2 11473