2014-04-27 42 views
0

我在memcache中有大量數據,目前我很擔心如何更新memcache上的值?如何添加數據一個現有的密鑰memcache php?

我已經設置多漁政船數組值..

,現在我有2案件這裏:

  1. 我想在Memcache中的相同的密鑰
  2. 增加新的價值我想更新某個特定數組的某個值。

我知道我可以做到這一點get -> modify -> set

$data=$m->get('foo'); 

$data[]=array('id'=>134,'title'=>'My First Car','content'=>'I love my car'); 

$m->set('foo',$data,TRUE,0); 

在這種example..user可以改變它的title, content等等,所以我需要更新內存緩存中的這些信息。

但是獲取數據超過1MB的每個變化,這不會是一個好主意。

我也瞭解到append,但it says它只適用於string值。這意味着我不能將Array附加到現有的key

有沒有辦法在沒有獲取數據的情況下設置/更新現有密鑰上的數據?

請幫助..

回答

0

只需調用$ M->在第一時間拿到填充$的數據,不要再打電話,如果你只是進行更新: -

if (!count($data)) 
    $data=$m->get('foo'); 

$data[]=array('id'=>134,'title'=>'My First Car','content'=>'I love my car'); 

$m->set('foo',$data,TRUE,0); 

如果你使$ data全局,那麼你可以從其他函數中引用它

+0

謝謝@ joep1978 ..我會嘗試使用全局變量。但沒有任何其他方式沒有調用'$ m-> get'? – user3553297

+0

不,$ m-> get必須至少調用一次,否則你將設置foo爲一個只包含最近追加的數組 –

相關問題