標籤:使用 strong 資料 div 演算法 時間 伺服器 table
儲存資料
向memcached儲存資料的方法有
它們的使用方法都相同:
$add = $memcached->add( ‘鍵‘, ‘值‘, ‘期限‘ );$replace = $memcached->replace( ‘鍵‘, ‘值‘, ‘期限‘ );$set = $memcached->set( ‘鍵‘, ‘值‘, ‘期限‘ );
向memcached儲存資料時可以指定期限(秒)。不指定期限時,memcached按照LRU演算法儲存資料。這三個方法的區別如下:
| 選項 |
說明 |
| add |
僅當儲存空間中不存在鍵相同的資料時才儲存 |
| replace |
僅當儲存空間中存在鍵相同的資料時才儲存 |
| set |
與add和replace不同,無論何時都儲存 |
擷取資料
擷取資料可以使用get和get_multi方法。
$val = $memcached->get(‘鍵‘);$val = $memcached->get_multi(‘鍵1‘, ‘鍵2‘, ‘鍵3‘, ‘鍵4‘, ‘鍵5‘);
一次取得多條資料時使用get_multi。get_multi可以非同步地同時取得多個索引值,其速度要比迴圈調用get快數十倍。
刪除資料
刪除資料使用delete方法,不過它有個獨特的功能。
$memcached->delete(‘鍵‘, ‘阻塞時間(秒)‘);
刪除第一個參數指定的鍵的資料。第二個參數指定一個時間值,可以禁止使用同樣的鍵儲存新資料。此功能可以用於防止快取資料的不完整。但是要注意,set函數忽視該阻塞,照常儲存資料
增一和減一操作
可以將memcached上特定的索引值作為計數器使用。
$ret = $memcached->incr(‘鍵‘);$memcached->add(‘鍵‘, 0) unless defined $ret;
增一和減一是原子操作,但未設定初始值時,不會自動賦成0。因此,應當進行錯誤檢查,必要時加入初始化操作。而且,伺服器端也不會對超過232時的行為進行檢查。