Memcache到期时间

时间:2010-12-23 04:04:23

标签: memcached

是否可以获得存储在memcache中的值的剩余时间?

3 个答案:

答案 0 :(得分:1)

不,不是。如果你想要这样的东西,你需要将它编码为你的价值。

答案 1 :(得分:1)

没有。 Memcache过期时间只是礼貌而非保证。缓存中的任何项目都可以随时清除。

答案 2 :(得分:1)

是的,你可以,但它不是保证值,因为它可以被清除。不过,我只建议在开发环境中检查这个。

function getMemcacheKeys() {

    $memcache = new Memcache;
    $memcache->connect('localhost', 11211) or die ("Could not connect to memcache server");

    $list = array();
    $allSlabs = $memcache->getExtendedStats('slabs');
    foreach($allSlabs as $server => $slabs) {
        foreach($slabs AS $slabId => $slabMeta) {
           if (!is_numeric($slabId)) {
                continue;
           } 
           $cdump = $memcache->getExtendedStats('cachedump',(int)$slabId);
            foreach($cdump AS $keys => $arrVal) {
                if (!is_array($arrVal)) continue;
                foreach($arrVal AS $k => $v) {                   
                    echo $k .' - '.date('H:i d.m.Y',$v[1]).'<br />';
                }
           }
        }
    }   
}

复制自:https://stackoverflow.com/a/7480534/338840