PHP快取技術:memcache函式詳解之一
Memcache函式庫是在PECL(PHP Extension Community Library)中,主要作用是搭建大容量的記憶體資料的臨時存放區域,在分散式的時候作用體現的非常明顯,否則不建議使用。
memcache函式所有的方法列表如下:
參考http://www.php.net/manual/zh/function.Memcache-add.php
Memcache::add – 新增一個值,如果已經存在,則返回false
Memcache::addServer – 新增一個可供使用的伺服器地址
Memcache::close – 關閉一個Memcache物件
Memcache::connect – 建立一個Memcache物件
memcache_debug – 控制除錯功能
Memcache::decrement – 對儲存的某個key中的值進行減法操作
Memcache::delete – 刪除一個key值
Memcache::flush – 清除所有快取的資料
Memcache::get – 獲取一個key值
Memcache::getExtendedStats – 獲取程式池中所有程式的執行系統統計
Memcache::getServerStatus – 獲取執行伺服器的引數
Memcache::getStats – 返回伺服器的一些執行統計資訊
Memcache::getVersion – 返回執行的Memcache的版本資訊
Memcache::increment – 對儲存的某個key中的值進行加法操作
Memcache::pconnect – 建立一個Memcache的持久連線物件
Memcache::replace -對一個已有的key進行覆寫操作
Memcache::set – 新增一個值,如果已經存在,則覆寫
Memcache::setCompressThreshold – 對大於某一大小的資料進行壓縮
Memcache::setServerParams – 在執行時修改伺服器的引數
Memcache::add用法
bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )
說明:
如果$key不存在的時候,使用這個函式來儲存$var的值。功能相同的函式是memcache_add()。
引數:
$key :將要儲存的鍵值。
$var :儲存的值,字元型和整型會按原值儲存,其他型別自動序列化以後儲存。
$flag:是否用MEMCACHE_COMPRESSED來壓縮儲存的值,true表示壓縮,false表示不壓縮。
$expire:儲存值的過期時間,如果為0表示不會過期,你可以用unix時間戳或者描述來表示從現在開始的時間,但是你在使用秒數表示的時候,不要超過2592000秒 (表示30天)。
返回值:
如果成功則返回 TRUE,失敗則返回 FALSE。如果$key值已經存在,則會返回FALSE。 其他情況下Memcache::add()的用法類似於Memcache::set()。
例子:
<?php
$memcache_obj = memcache_connect(“localhost”, 11211);
/* 程式導向API */
memcache_add($memcache_obj, `var_key`, `test variable`, false, 30);
/* 物件導向API */
$memcache_obj->add(`var_key`, `test variable`, false, 30);
?>
Memcache::addServer用法
bool Memcache::addServer ( string $host [, int $port [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback ]]]]]]] )
說明:
新增一個可供使用的伺服器地址到連線池中,連線用Memcache::addServer開啟,指令碼執行完後自動關閉,或者可以用Memcache::close()手動關閉。相同函式是memcache_add_server()。
當用這個方法的時候(相對於Memcache::connect()和 Memcache::pconnect()方法),網路連線只有等需要的時候才會建立,因此不會因為增加很多的伺服器到連線池而增加系統負擔,因為很多伺服器可能沒有使用。
故障恢復會發生在這個方法執行的任何階段,只要其他的伺服器是正常的,這些連線請求的失敗使用者不會注意到。任何一種socket或者memcached伺服器級的錯誤可以觸發故障恢復。正常的客戶端錯誤比如增加一個存在的鍵值不會引發故障恢復。
引數:
$host伺服器的地址
$port伺服器埠
$persistent是否是一個持久連線
$weight這臺伺服器在所有伺服器中所佔的權重
$timeout連線的持續時間
$retry_interval連線重試的間隔時間,預設為15,設定為-1表示不進行重試
$status控制伺服器的線上狀態
$failure_callback允許設定一個回掉函式來處理錯誤資訊。
返回值:
如果成功則返回 TRUE,失敗則返回 FALSE。
例子:
<?php
/* 物件導向API */
$memcache = new Memcache;
$memcache->addServer(`memcache_host`, 11211);
$memcache->addServer(`memcache_host2`, 11211);
/* 程式導向 API */
$memcache_obj = memcache_connect(`memcache_host`, 11211);
memcache_add_server($memcache_obj, `memcache_host2`, 11211);
?>
Memcache::close用法
bool Memcache::close ( void )
說明:
關閉memcache伺服器連線。這個函式不會關閉長連線,長連線只有在web伺服器關閉或者重啟的時候才會關閉。相同的函式memcache_close()
返回值:
如果成功則返回 TRUE,失敗則返回 FALSE。
例子:
<?php
/* 程式導向 API */
$memcache_obj = memcache_connect(`memcache_host`, 11211);
/*
執行一些程式碼..
*/
memcache_close($memcache_obj);
/* 物件導向 API */
$memcache_obj = new Memcache;
$memcache_obj->connect(`memcache_host`, 11211);
/*
執行一些程式碼..
*/
$memcache_obj->close();
?>
Memcache::connect用法
bool Memcache::connect ( string $host [, int $port [, int $timeout ]] )
說明:
開啟memcached伺服器連線,建立一個到memcached伺服器的連線,用Memcache::connect開啟的連線會在指令碼執行完畢後自動關閉。你也可以用Memcache::close()去關閉連線。相同的函式是memcache_connect()。
引數:
$host:指向memcached正在收聽的連結的主機,這個引數會有另一種特殊的連線方式unix:///path/to/memcached.sock,即用unix的域名sockets,這種情況下,埠必須設定為0
$port:指向memcached正在收聽的連結的埠,用unix的域名sockets的情況下,埠必須設定為0
$timeout:用於連線守護程式的秒數,當你改變預設的1秒的值的時候,你需要考慮一下,如果你的連線太慢的話,你可能會失去快取的優勢。
返回值:
如果成功則返回 TRUE,失敗則返回 FALSE。
例子:
<?php
/* 程式導向 API */
$memcache_obj = memcache_connect(`memcache_host`, 11211);
/* 物件導向 API */
$memcache = new Memcache;
$memcache->connect(`memcache_host`, 11211);
?>
相關文章
- 關於分散式快取memcache分散式快取
- 帶你走進memcache,老牌記憶體快取技術記憶體快取
- 深入Nginx + PHP 快取詳解NginxPHP快取
- PHP BC Math 函式詳解PHP函式
- 【memcache快取專題(3)】PHP-memcache擴充套件的安裝以及使用快取PHP套件
- PHP 中 9 大快取技術總結PHP快取
- PHP函式處理函式例項詳解PHP函式
- 快取技術快取
- 大資料技術-hive視窗函式詳解大資料Hive函式
- PHP閉包函式使用詳解PHP函式
- 小工匠聊架構 - 分散式快取技術_快取設計架構分散式快取
- PHP 面試詳解之技術篇PHP面試
- 精讀《函式快取》函式快取
- 搞懂分散式技術15:快取更新的套路分散式快取
- 搞懂分散式技術13:快取的那些事分散式快取
- 【memcache快取專題(2)】memcache安裝與命令列使用快取命令列
- Mybatis快取詳解MyBatis快取
- Python快取技術Python快取
- 位元組快取技術快取
- 快取技術淺談快取
- ASP快取技術 (轉)快取
- PHP 查詢、擷取字串函式詳解PHP字串函式
- PHP類和物件函式例項詳解PHP物件函式
- 搞懂分散式技術14:Spring Boot使用註解整合Redis快取分散式Spring BootRedis快取
- Redis詳解(十二)------ 快取穿透、快取擊穿、快取雪崩Redis快取穿透
- sql常用函式詳解(一)——字串擷取SQL函式字串
- 使用Nginx+Memcache做頁面快取Nginx快取
- ehcache memcache redis 三大快取男高音Redis快取
- 24-PHP+MySQL分頁技術詳解PHPMySql
- jquery的get()函式快取問題解決方案jQuery函式快取
- php面試題之一——PHP核心技術(高階部分)PHP面試題
- 華為快應用引擎技術架構詳解架構
- 前端常用的快取技術前端快取
- 快取技術方案改造思考快取
- PHP中debug_backtrace函式詳解PHP函式
- 快取函式的簡單使用快取函式
- Redis 快取雪崩,快取擊穿和快取穿透技術方案總結Redis快取穿透
- php字串擷取函式,支援中文擷取PHP字串函式