我的代码是从数据库中获取数据。从数据库加载数据需要大约5秒钟。所以我使用memcached缓存来缓存数据库数据。因此页面加载大约需要1秒。但问题是当我更新数据库中的数据我的网页显示旧的缓存数据。在memcache中是否有任何自动更新机制或如何使用memcache显示经常更新的数据。 这是我的代码:
$memcache = new Memcache;
$memcache->connect('localhost',portno) or die ("Could not connect");
$result = $memcache->get('key'. $_SESSION['front_app']['employee_id'].$month.$year);
if(!$result){
foreach ($call_arr as $c) {
$result[] = $a->get_submitted_status($start_date, $end_date,id); /*this fetches data from database*/
}
}
$memcache->set('key'.id.$month.$year,$result);
请帮助解决这个问题。
答案 0 :(得分:0)
作为memcache中自动更新机制的解决方案,您可以配置数据项的有效期,同时将其存储在memcache服务器中
请尝试执行以下代码段
$memcache_object = new Memcache();
$memcache_object->connect('localhost', 11211);
$memcache_object->set('key', 'value', MEMCACHE_COMPRESSED, 30);
echo $memcache_object->get('key');
在上面的代码片段中,使用存储在memcache服务器上的密钥的值到期时间设置为30秒。
请参阅以下网址中提到的文档。