我们如何使用memcache来更新数据

时间:2016-03-11 05:40:59

标签: php caching memcached

我的代码是从数据库中获取数据。从数据库加载数据需要大约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);

请帮助解决这个问题。

1 个答案:

答案 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秒。

请参阅以下网址中提到的文档。

http://php.net/manual/en/memcache.set.php