[转载]php-cache-memcached
luyued 发布于 2011-01-16 13:17 浏览 N 次
原文地址:php-cache-memcached作者:零起步1.memcached简介
官方网站
http://www.danga.com/memcached/
libevent
官网:http://www.monkey.org/~provos/libevent/
下载:http://www.monkey.org/~provos/libevent-1.2.tar.gz
PECL官网:
http://pecl.php.net (For Linux)
http://pecl4win.php.net(For Windows)
扩展下载:
http://pecl4win.php.net/download.php/ext/5_1/5.1.2/php_memcache.dll
http://pecl4win.php.net/ext.php/php_memcache.dll
http://pecl.php.net/package/memcache
memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序.
Memcache 守护程序 (memcached) 是一种高性能分布式对象缓存.
名为 memcached 的 Memcache 守护程序是一种高性能的分布式对象缓存.
Memcache PHP 扩展将为访问缓存提供一个简单的应用程序接口 (API).
如果 XCache 和 XDebug 是涡轮增压器,那么 memcached 就是喷气发动机.
Memcached::connect -- 打开一个到Memcached的连接
Memcached::pconnect -- 打开一个到Memcached的长连接
Memcached::close -- 关闭一个Memcached的连接
Memcached::set -- 保存数据到Memcached服务器上
Memcached::get -- 提取一个保存在Memcached服务器上的数据
Memcached::replace -- 替换一个已经存在Memcached服务器上的项目(功能类似Memcached::set)
Memcached::delete -- 从Memcached服务器上删除一个保存的项目
Memcached::flush -- 刷新所有Memcached服务器上保存的项目(类似于删除所有的保存的项目)
Memcached::getStats -- 获取当前Memcached服务器运行的状态
2.安装
linux安装
下载libevent,memcached
libevent是跨平台的事件驱动库
安装libevent
# tar zxvf libevent-1.1a.tar.gz
# cd libevent-1.1a
# ./configure
--prefix=/usr
# make
# make install //测试libevent是否安装成功 # ls -al /usr/lib | grep libevent
安装memcached
# tar zxvf memcached-1.1.12.tar.gz
# cd memcached-1.1.12
# ./configure
--prefix=/usr
# make
# make install
安装Memcache的PHP扩展
http://pecl.php.net/package/memcache
# tar zxvf memcache-2.2.1.tgz
# cd memcache-2.2.1
# /usr/local/php/bin/phpize
# ./configure
–enable-memcache
–with-php-config=/usr/local/php/bin/php-config
–with-zlib-dir
# make
# make install
上述安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/
把php.ini中的extension_dir = './'修改为
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
添加一行来载入memcache扩展:extension=memcache.so
安装完成之后,memcached 应该在 /usr/bin/memcached.
运行 memcached 守护程序,只需一个命令行即可,不需要修改任何配置文件
/usr/bin/memcached -d -m 128 -l 192.168.1.1 -p 11211 -u httpd
参数解释:
-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户.
-c选项是最大运行的并发连接数,默认是1024,
-P是设置保存Memcache的pid文件
windows安装
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版本的文件 http://pecl4win.php.net/ext.php/php_memcache.dll
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!,就表示环境搭建成功.
< ?php
$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;
?>
3.工作原理
首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,
客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等.
PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,
每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,
保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,
这也是为什么 memcached 能够如此高效快速的原因.注意,这些对象并不是持久的,
服务停止之后,里边的数据就会丢失
4.PHP memcached 应用示例
首先 下载 memcached-client.php,在下载了 memcached-client.php 之后,
就可以通过这个文件中的类“memcached”对 memcached 服务进行操作了.其实代码调用非常简单,
主要会用到的方法有 add()、get()、replace() 和 delete(),方法说明如下:
add ($key, $val, $exp = 0)
往 memcached 中写入对象,$key 是对象的唯一标识符,$val 是写入的对象数据,$exp 为过期时间,单位为秒,默认为不限时间;
get ($key)
从 memcached 中获取对象数据,通过对象的唯一标识符 $key 获取;
replace ($key, $value, $exp=0)
使用 $value 替换 memcached 中标识符为 $key 的对象内容,参数与 add() 方法一样,只有 $key 对象存在的情况下才会起作用;
delete ($key, $time = 0)
删除 memcached 中标识符为 $key 的对象,$time 为可选参数,表示删除之前需要等待多长时间.
下面是一段简单的测试代码,代码中对标识符为 'mykey' 的对象数据进行存取操作:
//包含 memcached 类文件
require_once('memcached-client.php');
//选项设置
$options = array(
'servers' => array('192.168.1.1:11211'), //memcached 服务的地址、端口,
可用多个数组元素表示多个 memcached 服务
'debug' => true, //是否打开 debug
'compress_threshold' => 10240, //超过多少字节的数据时进行压缩
'persistant' => false //是否使用持久连接
);
//创建 memcached 对象实例
$mc = new memcached($options);
//设置此脚本使用的唯一标识符
$key = 'mykey';
//往 memcached 中写入对象
$mc->add($key, 'some random strings');
$val = $mc->get($key);
echo "n".str_pad('$mc->add() ', 60, '_')."n";
var_dump($val);
//替换已写入的对象数据值
$mc->replace($key, array('some'=>'haha', 'array'=>'xxx'));
$val = $mc->get($key);
echo "n".str_pad('$mc->replace() ', 60, '_')."n";
var_dump($val);
//删除 memcached 中的对象
$mc->delete($key);
$val = $mc->get($key);
echo "n".str_pad('$mc->delete() ', 60, '_')."n";
var_dump($val);
?>
在实际应用中,通常会把数据库查询的结果集保存到 memcached 中,
下次访问时直接从 memcached 中获取,而不再做数据库查询操作,这样可以在很大程度上减轻数据库的负担.
通常会将 SQL 语句 md5() 之后的值作为唯一标识符 key.
下边是一个利用 memcached 来缓存数据库查询结果集的示例(此代码片段紧接上边的示例代码):
$sql = 'SELECT * FROM users';
$key = md5($sql); //memcached 对象标识符
if ( !($datas = $mc->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);
?>
可以看出,使用 memcached 之后,可以减少数据库连接、查询操作,数据库负载下来了,脚本的运行速度也提高了.
PHP 实现多服务器共享 SESSION 数据,SESSION使用数据库保存,
在并发访问量大的时候,服务器的负载会很大,经常会超出 MySQL 最大连接数,
利用 memcached,可以很好地解决这个问题,工作原理如下:
* 用户访问网页时,查看 memcached 中是否有当前用户的 SESSION 数据,使用 session_id() 作为唯一标识符;
如果数据存在,则直接返回,如果不存在,再进行数据库连接,获取 SESSION 数据,
并将此数据保存到 memcached 中,供下次使用;
* 当前的 PHP 运行结束(或使用了 session_write_close())时,会调用 My_Sess::write() 方法,
将数据写入数据库,这样的话,每次仍然会有数据库操作,对于这个方法,也需要进行优化.
使用一个全局变量,记录用户进入页面时的 SESSION 数据,
然后在 write() 方法内比较此数据与想要写入的 SESSION 数据是否相同,
不同才进行数据库连接、写入数据库,同时将 memcached 中对应的对象删除,
如果相同的话,则表示 SESSION 数据未改变,那么就可以不做任何操作,直接返回了;
* 那么用户 SESSION 过期时间怎么解决呢?记得 memcached 的 add() 方法有个过期时间参数 $exp 吗?
把这个参数值设置成小于 SESSION 最大存活时间即可.另外别忘了给那些一直在线的用户延续 SESSION 时长,
这个可以在 write() 方法中解决,通过判断时间,符合条件则更新数据库数据.
5.code demo
1.
$memcache = new Memcache; //创建一个memcache对象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器
$memcache->set('key', 'test'); //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get('key'); //从内存中取出key的值
echo $get_value;
2.
$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;
3.
require_once('memcached-client.php');//docs/memcached-client
$options = array(
'servers' => array('127.0.0.1:11211'), //memcached 服务的地址、端口, 可用多个数组元素表示多个 memcached 服务
'debug' => true, //是否打开 debug
'compress_threshold' => 10240, //超过多少字节的数据时进行压缩
'persistant' => false //是否使用持久连接
);
//创建 memcached 对象实例
$mc = new memcached($options);
//设置此脚本使用的唯一标识符
$key = 'mykey';
//往 memcached 中写入对象
$mc->add($key, 'some random strings');
$val = $mc->get($key);
echo "n".str_pad('$mc->add() ', 60, '_')."n";
var_dump($val);
//替换已写入的对象数据值
$mc->replace($key, array('some'=>'haha', 'array'=>'xxx'));
$val = $mc->get($key);
echo "n".str_pad('$mc->replace() ', 60, '_')."n";
var_dump($val);
//删除 memcached 中的对象
$mc->delete($key);
$val = $mc->get($key);
echo "n".str_pad('$mc->delete() ', 60, '_')."n";
var_dump($val);
4.Memcache内存的更新清理(delete flush)
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$status = $memcache->getStats();
echo '设置前内存使用情况'.$status['bytes'].'
';
echo '设置后';
for($i=0;$i<9;$i++) {
$memcache->set('b'.$i,rand(1,99));
echo '
'.$i.'->'.$memcache->get('b'.$i);
}
$status = $memcache->getStats();
echo 'delete前内存使用情况'.$status['bytes'].'
';
echo '
开始delete';
官方网站
http://www.danga.com/memcached/
libevent
官网:http://www.monkey.org/~provos/libevent/
下载:http://www.monkey.org/~provos/libevent-1.2.tar.gz
PECL官网:
http://pecl.php.net (For Linux)
http://pecl4win.php.net(For Windows)
扩展下载:
http://pecl4win.php.net/download.php/ext/5_1/5.1.2/php_memcache.dll
http://pecl4win.php.net/ext.php/php_memcache.dll
http://pecl.php.net/package/memcache
memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序.
Memcache 守护程序 (memcached) 是一种高性能分布式对象缓存.
名为 memcached 的 Memcache 守护程序是一种高性能的分布式对象缓存.
Memcache PHP 扩展将为访问缓存提供一个简单的应用程序接口 (API).
如果 XCache 和 XDebug 是涡轮增压器,那么 memcached 就是喷气发动机.
Memcached::connect -- 打开一个到Memcached的连接
Memcached::pconnect -- 打开一个到Memcached的长连接
Memcached::close -- 关闭一个Memcached的连接
Memcached::set -- 保存数据到Memcached服务器上
Memcached::get -- 提取一个保存在Memcached服务器上的数据
Memcached::replace -- 替换一个已经存在Memcached服务器上的项目(功能类似Memcached::set)
Memcached::delete -- 从Memcached服务器上删除一个保存的项目
Memcached::flush -- 刷新所有Memcached服务器上保存的项目(类似于删除所有的保存的项目)
Memcached::getStats -- 获取当前Memcached服务器运行的状态
2.安装
linux安装
下载libevent,memcached
libevent是跨平台的事件驱动库
安装libevent
# tar zxvf libevent-1.1a.tar.gz
# cd libevent-1.1a
# ./configure
--prefix=/usr
# make
# make install //测试libevent是否安装成功 # ls -al /usr/lib | grep libevent
安装memcached
# tar zxvf memcached-1.1.12.tar.gz
# cd memcached-1.1.12
# ./configure
--prefix=/usr
# make
# make install
安装Memcache的PHP扩展
http://pecl.php.net/package/memcache
# tar zxvf memcache-2.2.1.tgz
# cd memcache-2.2.1
# /usr/local/php/bin/phpize
# ./configure
–enable-memcache
–with-php-config=/usr/local/php/bin/php-config
–with-zlib-dir
# make
# make install
上述安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/
把php.ini中的extension_dir = './'修改为
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
添加一行来载入memcache扩展:extension=memcache.so
安装完成之后,memcached 应该在 /usr/bin/memcached.
运行 memcached 守护程序,只需一个命令行即可,不需要修改任何配置文件
/usr/bin/memcached -d -m 128 -l 192.168.1.1 -p 11211 -u httpd
参数解释:
-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户.
-c选项是最大运行的并发连接数,默认是1024,
-P是设置保存Memcache的pid文件
windows安装
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版本的文件 http://pecl4win.php.net/ext.php/php_memcache.dll
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!,就表示环境搭建成功.
< ?php
$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;
?>
3.工作原理
首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,
客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等.
PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,
每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,
保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,
这也是为什么 memcached 能够如此高效快速的原因.注意,这些对象并不是持久的,
服务停止之后,里边的数据就会丢失
4.PHP memcached 应用示例
首先 下载 memcached-client.php,在下载了 memcached-client.php 之后,
就可以通过这个文件中的类“memcached”对 memcached 服务进行操作了.其实代码调用非常简单,
主要会用到的方法有 add()、get()、replace() 和 delete(),方法说明如下:
add ($key, $val, $exp = 0)
往 memcached 中写入对象,$key 是对象的唯一标识符,$val 是写入的对象数据,$exp 为过期时间,单位为秒,默认为不限时间;
get ($key)
从 memcached 中获取对象数据,通过对象的唯一标识符 $key 获取;
replace ($key, $value, $exp=0)
使用 $value 替换 memcached 中标识符为 $key 的对象内容,参数与 add() 方法一样,只有 $key 对象存在的情况下才会起作用;
delete ($key, $time = 0)
删除 memcached 中标识符为 $key 的对象,$time 为可选参数,表示删除之前需要等待多长时间.
下面是一段简单的测试代码,代码中对标识符为 'mykey' 的对象数据进行存取操作:
//包含 memcached 类文件
require_once('memcached-client.php');
//选项设置
$options = array(
'servers' => array('192.168.1.1:11211'), //memcached 服务的地址、端口,
可用多个数组元素表示多个 memcached 服务
'debug' => true, //是否打开 debug
'compress_threshold' => 10240, //超过多少字节的数据时进行压缩
'persistant' => false //是否使用持久连接
);
//创建 memcached 对象实例
$mc = new memcached($options);
//设置此脚本使用的唯一标识符
$key = 'mykey';
//往 memcached 中写入对象
$mc->add($key, 'some random strings');
$val = $mc->get($key);
echo "n".str_pad('$mc->add() ', 60, '_')."n";
var_dump($val);
//替换已写入的对象数据值
$mc->replace($key, array('some'=>'haha', 'array'=>'xxx'));
$val = $mc->get($key);
echo "n".str_pad('$mc->replace() ', 60, '_')."n";
var_dump($val);
//删除 memcached 中的对象
$mc->delete($key);
$val = $mc->get($key);
echo "n".str_pad('$mc->delete() ', 60, '_')."n";
var_dump($val);
?>
在实际应用中,通常会把数据库查询的结果集保存到 memcached 中,
下次访问时直接从 memcached 中获取,而不再做数据库查询操作,这样可以在很大程度上减轻数据库的负担.
通常会将 SQL 语句 md5() 之后的值作为唯一标识符 key.
下边是一个利用 memcached 来缓存数据库查询结果集的示例(此代码片段紧接上边的示例代码):
$sql = 'SELECT * FROM users';
$key = md5($sql); //memcached 对象标识符
if ( !($datas = $mc->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);
?>
可以看出,使用 memcached 之后,可以减少数据库连接、查询操作,数据库负载下来了,脚本的运行速度也提高了.
PHP 实现多服务器共享 SESSION 数据,SESSION使用数据库保存,
在并发访问量大的时候,服务器的负载会很大,经常会超出 MySQL 最大连接数,
利用 memcached,可以很好地解决这个问题,工作原理如下:
* 用户访问网页时,查看 memcached 中是否有当前用户的 SESSION 数据,使用 session_id() 作为唯一标识符;
如果数据存在,则直接返回,如果不存在,再进行数据库连接,获取 SESSION 数据,
并将此数据保存到 memcached 中,供下次使用;
* 当前的 PHP 运行结束(或使用了 session_write_close())时,会调用 My_Sess::write() 方法,
将数据写入数据库,这样的话,每次仍然会有数据库操作,对于这个方法,也需要进行优化.
使用一个全局变量,记录用户进入页面时的 SESSION 数据,
然后在 write() 方法内比较此数据与想要写入的 SESSION 数据是否相同,
不同才进行数据库连接、写入数据库,同时将 memcached 中对应的对象删除,
如果相同的话,则表示 SESSION 数据未改变,那么就可以不做任何操作,直接返回了;
* 那么用户 SESSION 过期时间怎么解决呢?记得 memcached 的 add() 方法有个过期时间参数 $exp 吗?
把这个参数值设置成小于 SESSION 最大存活时间即可.另外别忘了给那些一直在线的用户延续 SESSION 时长,
这个可以在 write() 方法中解决,通过判断时间,符合条件则更新数据库数据.
5.code demo
1.
$memcache = new Memcache; //创建一个memcache对象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器
$memcache->set('key', 'test'); //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get('key'); //从内存中取出key的值
echo $get_value;
2.
$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;
3.
require_once('memcached-client.php');//docs/memcached-client
$options = array(
'servers' => array('127.0.0.1:11211'), //memcached 服务的地址、端口, 可用多个数组元素表示多个 memcached 服务
'debug' => true, //是否打开 debug
'compress_threshold' => 10240, //超过多少字节的数据时进行压缩
'persistant' => false //是否使用持久连接
);
//创建 memcached 对象实例
$mc = new memcached($options);
//设置此脚本使用的唯一标识符
$key = 'mykey';
//往 memcached 中写入对象
$mc->add($key, 'some random strings');
$val = $mc->get($key);
echo "n".str_pad('$mc->add() ', 60, '_')."n";
var_dump($val);
//替换已写入的对象数据值
$mc->replace($key, array('some'=>'haha', 'array'=>'xxx'));
$val = $mc->get($key);
echo "n".str_pad('$mc->replace() ', 60, '_')."n";
var_dump($val);
//删除 memcached 中的对象
$mc->delete($key);
$val = $mc->get($key);
echo "n".str_pad('$mc->delete() ', 60, '_')."n";
var_dump($val);
4.Memcache内存的更新清理(delete flush)
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$status = $memcache->getStats();
echo '设置前内存使用情况'.$status['bytes'].'
';
echo '设置后';
for($i=0;$i<9;$i++) {
$memcache->set('b'.$i,rand(1,99));
echo '
'.$i.'->'.$memcache->get('b'.$i);
}
$status = $memcache->getStats();
echo 'delete前内存使用情况'.$status['bytes'].'
';
echo '
开始delete';
相关资讯
- 07-01· 禁教唐诗算术能还幼儿快
- 07-01· 2011年06月17日
- 07-01· 唐诗宋词英译:李商隐 筹
- 07-01· 仿评《唐诗1000首》第186首
- 07-01· 没事干的时候背背唐诗吧
- 07-01· [转载]唐诗中“斜”字该读
- 07-01· 湖南醴陵瓷业转型升级
- 07-01· 奇瑞风云2两厢黑色|2010款
- 07-01· 摩根士丹利华鑫摩根士丹
- 07-01· 摩根士丹利华鑫近期优选
图文资讯
最新资讯
- 07-01· 中金投行部大摩出售中金
- 07-01· 摩根士丹利招聘6月2日【实
- 07-01· 营养防病圣典
- 07-01· 《博伽梵歌原意》之第十
- 07-01· [不错]斑斓圣典---减肥中常
- 07-01· 武乐圣典《太极武当》:武
- 07-01· 铁血英雄-现阶段战功牌兑
- 07-01· 2011年06月10日【原创】南歌
- 07-01· 【淘宝网信息】- 2010年的
- 07-01· 深圳品牌女装有哪些?