4、测试
ok下面就是测试的工作了,这里有个php脚本,用于测试memcache是否缓存数据成功
需要为这个脚本添加一个只读的数据库用户,命令格式
MySQL>grant select on lee.* to memcache@"%" identified by "12345";
mysql>flush privileges;
mysql>\q
测试脚本内容如下:
$memcachehost = '192.168.0.128';
$memcacheport = 11211;
$memcachelife = 60;
$memcache = new Memcache;
$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");
$query="select * from lee1 limit 10";
$key=md5($query);
if(!$memcache->get($key))
{
$conn=mysql_connect("192.168.0.128","memcache","12345");
mysql_select_db(lee);
$result=mysql_query($query);
while ($row=mysql_fetch_assoc($result))
{
$arr[]=$row;
}
$f = 'mysql';
$memcache->add($key,serialize($arr),0,30);
$data = $arr ;
}
else{
$f = 'memcache';
$data_mem=$memcache->get($key);
$data = unserialize($data_mem);
}
echo $f;
echo "
";
echo "$key";
echo "
";
//print_r($data);
foreach($data as $a)
{
echo "number is $a[id]";
echo "
";
echo "name is $a[name]";
echo "
";
}
?>
访问页面测试
如果出现mysql表示memcached中没有内容,需要memcached从数据库中取得
再刷新页面
如果有memcached标志表示这次的数据是从memcached中取得的
也可以通过 telnet 192.168.0.128 11211 使用memcached命令来分析是否有内容
memcached有个缓存时间默认是1分钟,过了一分钟后,memcached需要重新从数据库中取得数据
我们也可以手动删除,这时手动刷新网页,数据是会再次被缓存的