解压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);