php 中memcache的应用场景,php当中的memcache应用

解压Memcached_1.2.5文档,cmd下执行memcached.exe -d -install

将php5.3_vc6_memcachedll文档解压,将php_memcache.dll文件复制到php安装目录的ext文件目录中。

然后在php.ini 当中填上这句话:extension="php_memcache.dll"

在phpinfo()下查看,是否引用了memcache扩展。

测试代码:

// 连接

$mem = new Memcache;

$mem -> connect("127.0.0.1", 11211);

// 保存数据

$mem -> set('key1', 'This is first value', 0, 60);

$val = $mem -> get('key1');

echo "Get key1 value: " . $val . "
";

// 替换数据

$mem -> replace('key1', 'This is replace value', 0, 60);

$val = $mem -> get('key1');

echo "Get key1 value: " . $val . "
";

// 保存数组

$arr = array('aaa', 'bbb', 'ccc', 'ddd');

$mem -> set('key2', $arr, 0, 60);

$val2 = $mem -> get('key2');

echo "Get key2 value: ";

print_r($val2);

echo "
";

// 删除数据

$mem -> delete('key1');

$val = $mem -> get('key1');

echo "Get key1 value: " . $val . "
";

// 清除所有数据

$mem -> flush();

$val2 = $mem -> get('key2');

echo "Get key2 value: ";

print_r($val2);

echo "
";

// 关闭连接

$mem -> close();

$memcachehost = '192.168.10.1';

$memcacheport = 11211;

$memcachelife = 60;

$memcache = new Memcache;

$memcache -> connect($memcachehost, $memcacheport) or die ("Could not connect");

$query = "select * from user limit 10";

$key = md5($query);

if (!$memcache -> get($key))

{

$conn = mysql_connect("192.168.30.1", "root", "passwd");

mysql_select_db(users);

$result = mysql_query($query);

while ($row = mysql_fetch_assoc($result))

{

$arr[] = $row;

}

$f = 'db';

$memcache -> add($key, serialize($arr), 0, 30);

$data = $arr ;

}

else

{

$f = 'mem';

$data_mem = $memcache -> get($key);

$data = unserialize($data_mem);

}

echo $f;

echo "";

// print_r($data);

foreach($data as $a)

{

echo $a[user_id] . _ . $a[email];

echo "";

}

新闻系统的应用:

// ==============memcache

$memcachehost = '127.0.0.1';

$memcacheport = 11211;

$memcachelife = 60;

$memcache = new Memcache;

$memcache -> connect($memcachehost, $memcacheport) or die ("Could not connect");

// ==============新闻

$sql = "SELECT id,title,left(title,16) as biaoti,date_time FROM `p_newsbase` where shenhe='1' order by id DESC limit 7 ";

$query = $db -> query($sql);

$key = md5($query);

while ($row_news = $db -> fetch_array($query))

{

$str = $row_news['biaoti'] . $db -> time_out($row_news['date_time']);

$sm_news[] = array("name" => $str, "title" => $row_news['title'], "id" => $row_news['id'], "date_time" => $row_news['date_time']);

}

if (!$memcache -> get($key))

{

$memcache -> add($key, serialize($sm_news), 0, $memcachelife);

}

else

{

$data_mem = $memcache -> get($key);

$sm_news = unserialize($data_mem);

}

$smarty -> assign("sm_news", $sm_news);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值