码迷,mamicode.com
首页 > 系统相关 > 详细

在什么地方使用memcache

时间:2015-09-08 00:04:42      阅读:562      评论:0      收藏:0      [点我收藏+]

标签:

 

PHP中使用memcache

   面向过程的使用方式

    面向对象的使用方式  这里是面向对象的方法

<?php

$mem = new Memcache;        //这个类没有构造方法

$mem->connect("localhost", 11211);        //连接服务器,持久连接是pconnect

//$mem->addServer(‘www.cyz.com‘,11221);        //可连接多个memcache服务器

//$mem->addServer(‘192.168.11.112‘,11211); //添加服务器时,设置分配数据的算法

$mem->add(‘mystr‘, ‘This is a memcache test!‘, MEMCACHE_COMPRESSED, 3600);

//$mem->add(‘mystr‘, ‘wwwwwww‘, MEMCACHE_COMPRESSED, 3600);        //再添加,这个不会生效

//要改变就用set 或者 replace

$mem->set(‘mystr‘, ‘wwwwww‘, false, 60*60);

$mem->add(‘myarr‘,[‘aaa‘,‘bbb‘,‘ccc‘,‘ddd‘]);        //默认30,超过用time()+60*60*24*31

class Person{

var $name = ‘zhangsan‘;

var $age = 10;

}

$mem->add(‘myobj‘,new Person);

 

$mem->delete(‘mystr‘);        //删除了mystr

$mem->flush();        //删除所有

 

$val = $mem->get(‘mystr‘);

echo $val,‘<br>‘;

print_r($mem->get(‘myarr‘));

echo ‘<br>‘;

var_dump($mem->get(‘myobj‘));

echo ‘<br>‘;

echo $mem->getVersion();

echo ‘<pre>‘;

print_r($mem->getStats());

echo ‘</pre>‘;

$mem->close();        //关闭

    分布式memcache存取

         memcache有自己的存取hash算法,它会自动分配的比较均匀

 

1. 数据库读出来的数据(select)使用memcache处理

<?php

header(‘Content-Type:text/html;charset=utf-8‘);

$mem = new Memcache;        //这个类没有构造方法

$mem->connect("localhost", 11211);        //连接服务器,持久连接是pconnect

/*

 * 注意:

 *        1. 如果同一个项目安装了两次,key要有前缀.  $key = ‘a_goods‘;

 *        2. 如果同一条sql语句,在不同页面执行多次,可将sql语句作为下标. $key = $sql

 *        3. sql语句有大小写/不对应的问题,就可将sql语句用$key = md5($sql)计算下,如果觉得md5散列值太长,就取子字符串substr(md5($sql),10,8);

 */

$sql = "select * from goods;";

$key = substr(md5($sql),10,8);        //形成了一个32位的md5散列值

$data = $mem->get($key);        //这个下标要好好处理下

if(!$data){

//做个测试,第一次就有这个,刷新下不进这个,就没有了

echo ‘第一次木有值,我现在在获取值!<br>‘;

$db = new mysqli(‘localhost‘,‘root‘,‘‘,‘estore‘);

 

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

$data = [];

while($item = $res->fetch_assoc()){

$data[] = $item;    //因为这里用了data,最后也是打印data. So

}

$res->free();

$db->close();

 

$mem->set($key,$data,MEMCACHE_COMPRESSED,60*60);

}

//echo $key;    //查看下key是啥

echo ‘<pre>‘;

print_r($data);

echo ‘</pre>‘;

$mem->close();        //关闭

在什么地方使用memcache

标签:

原文地址:http://www.cnblogs.com/cyzeric/p/4790129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!