对Memcache在PHP中的应用分析
所需环境:php 5.3.3
Apache 2.2.7
MySQL 5.5.8
下载相关文档:单击下载
解压memcached_1.2.5文件和执行memcached.exe - D -安装在CMD下
解压php5.3_vc6_memcachedll文件和复制文件到php_memcache.dll PHP安装目录下的文件目录。
然后填写句子在php.ini:扩展=php_memcache .dll
看看Memcache扩展在phpinfo()引用。
测试代码:
复制代码代码如下所示:
< PHP
连接
MEM =新的Memcache美元;
$ MEM ->连接(127.0.0.1
保存数据
$ MEM ->设置('key1 ',这是第一个值,0, 60);
val =美元美元MEM ->得到('key1);
回声得到key1值:。美元价值;
替换数据
MEM ->取代美元('key1 ',这是取代价值',0, 60);
val =美元美元MEM ->得到('key1);
回声得到key1值:。美元价值;
保存数组
$ ARR =阵列('AAA',{BBB},CCC,'ddd);
$ MEM ->设置('key2,ARR美元,0, 60);
美元美元->得到val2 = MEM('key2);
回声得到key2价值:;
print_r($ val2);
;
删除数据
$ MEM ->删除('key1);
val =美元美元MEM ->得到('key1);
回声得到key1值:。美元价值;
清除所有数据
美元-同花顺();
美元美元->得到val2 = MEM('key2);
回声得到key2价值:;
print_r($ val2);
;
关闭连接
(等);
memcachehost美元= '192.168.10.1;
memcacheport = 11211美元;
memcachelife = 60美元;
$ Memcache =新memcache;
美元($ memcachehost memcache ->连接,memcacheport美元)或死亡(无法连接);
从用户限制10中选择*;
$ = MD5($查询);
如果(!memcache ->获得美元(美元关键))
{
$ conn = mysql_connect(192.168.30.1
mysql_select_db(用户);
结果= mysql_query美元($查询);
而($行= mysql_fetch_assoc($结果))
{
ARR { } = $行美元;
}
$ F = 'db;
$ Memcache ->添加($key,序列化($ ARR),30);
$data = $ ARR;
}
别的{
$ F = 'mem;
data_mem美元=美元Memcache ->得到($键);
美元($ data_mem)序列化数据=;
}
回波F;
;
/ / print_r($数据);
foreach($数据为美元)
{
回声$ { user_id }。_美元} {电子邮件;
;
}
>
新闻系统的应用:
复制代码代码如下所示:
/ / ============== memcache
memcachehost美元= '127.0.0.1;
memcacheport = 11211美元;
memcachelife = 60美元;
$ Memcache =新memcache;
美元($ memcachehost memcache ->连接,memcacheport美元)或死亡(无法连接);
/ / ==============新闻
为SQL =选择ID、标题、左(标题16)作为biaoti,从` p_newsbase `哪里date_time。
$查询= DB - >查询($ SQL);
$ = MD5($查询);
而($ row_news = $数据库-> fetch_array($查询)){
$str = $ row_news { 'biaoti},DB—> time_out美元(美元row_news { 'date_time});
sm_news美元{ } =阵列(名字= > $str,标题= > $ row_news {标题},ID= > $ row_news { 'id' },date_time= > $ row_news { 'date_time});
}
如果(!memcache ->获得美元(美元关键)){
$ Memcache ->添加($key,序列化(sm_news美元,0美元),memcachelife);
其他{ }
data_mem美元=美元Memcache ->得到($键);
sm_news美元=序列化($ data_mem);
}
Smarty美元->分配(sm_news