为什么memcache每天都会过期,而我已将其设置为0作为到期时间?

时间:2014-05-06 09:58:45

标签: php memcached

我不知道为什么会这样。每次我都设置这样的数据 -

    $mem = new Memcache();
    $mem->connect('localhost', 11211) or die ("Could not connect");     
    $userData=$mem->get("$USERID_DATA");
    if(!empty($userData)){
        $DATA=$userData;
        echo "COMMING FROM HOME";
    } else {
        $DATA=$modelUser->getUserData($USERID);
        $mem->set("$USERID_DATA",$DATA,MEMCACHE_COMPRESSED,0); // Never Expired
        echo "COMMING FROM MOON";
    }
    var_dump($DATA);

接下来当我在登录后返回查看我的数据时 它打印了所有数据,但它给我留言COMMING FROM MOON

这意味着它从DB向我提供的数据不是来自memcache。

我做错了吗?

请帮助..

1 个答案:

答案 0 :(得分:1)

每次重新启动计算机时,memcache daemon将关闭并重新启动,导致存储的数据丢失,因为memcached是内存存储中的内容。因此,重新启动计算机时,您之前存储的数据将不存在。