我想使用PHP& amp;来实现网页MySQL组合,它有一个部分用于自动更新来自DB的通知计数,首先我选择具有设置时间间隔的ajax来更新通知计数但是当我去表演时一些建议说ajax并不理想当许多用户在轨道上。所以我指的是memcache机制,以我的方式它看起来很好,因为它避免了许多请求不断地打击mysql,所以现在questoins是如何保持memcache与mysql同步,我尝试了简单的例子与memcache,在mysq php代码下面
<?php
$meminstance = new Memcache();
$meminstance->pconnect('localhost', 11211);
mysql_connect("localhost", "appuser", "Appuser") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$query = "select id,client,ip,count,title from mysql_common.alert_count";
$querykey = "KEY" . md5($query);
$result = $meminstance->get($querykey);
if (!$result) {
$query = mysql_query("select id,client,ip,count,title from mysql_common.alert_count");
while($row= mysql_fetch_array($query))
{
$id[]=$row['id'];
$count[]=$row['count'];
$title[]=$row['title'];
$client[]=$row['client'];
$ip[]=$row['ip'];
}
$arr['id']=$id;
$arr['count']=$count;
$arr['title']=$title;
$arr['client']=$client;
$arr['ip']=$ip;
$result= json_encode($arr);
$meminstance->set($querykey, $result, false, 20);
echo $result;
print "got result from mysql\n";
return 0;
}
print_r($meminstance->get($querykey));
print "got result from memcached\n";
return 0;
?>
上面代码的工作流程 - 首先是具有此查询数据的内存缓存,如果从memcache获取,则从mysql获取结果并存储到内存缓存,但是当我更新mysql表数据并执行相同代码时,它会给出结果memcache,但那不是更新数据。请指导我让memcache与mysql保持同步。感谢