【匯總】PHP【memcache協議】
在面試的時候,被問到了關於memcache的很多方面,發現自己只知道set,get是不夠的,所以重新整理下
基本內容
- Memcache — Memcache類
- Memcache::add — 增加一個條目到快取服務器
- Memcache::addServer — 向串連池中添加一個memcache伺服器
- Memcache::close — 關閉memcache串連
- Memcache::connect — 開啟一個memcached服務端串連
- Memcache::decrement — 減小元素的值
- Memcache::delete — 從服務端刪除一個元素
- Memcache::flush — 清洗(刪除)已經儲存的所有的元素
- Memcache::get — 從服務端檢回一個元素
- Memcache::getExtendedStats — 快取服務器池中所有伺服器統計資訊
- Memcache::getServerStatus — 用於擷取一個伺服器的線上/離線狀態
- Memcache::getStats — 擷取伺服器統計資訊
- Memcache::getVersion — 返回伺服器版本資訊
- Memcache::increment — 增加一個元素的值
- Memcache::pconnect — 開啟一個到伺服器的持久化串連
- Memcache::replace — 替換已經存在的元素的值
- Memcache::set — Store data at the server
- Memcache::setCompressThreshold — 開啟大值自動壓縮
- Memcache::setServerParams — 運行時修改伺服器參數和狀態
實際情境中經常需要遇到的情況
-------------------------------
Memcache::add()
如果不存在,再賦值
Memcache::addServer()
當使用這個方法的時候, 網路連接並不會立刻建立,而是直到真正使用的時候才建立。 因此在加入大量伺服器到串連池中時也是沒有開銷的,因為它們可能並不會被使用。
Memcache::decrement()
在元素不存在時不能建立它
首先將元素當前值轉換成數值然後減去value
新的元素的值不會小於0
Memcache::flush()
立即使所有已經存在的元素失效
並不會真正的釋放任何資源,而是僅僅標記所有元素都失效了,因此已經被使用的記憶體會被新的元素複寫。
Memcache::increment()
不會在key對應元素不存在時建立元素。
將指定元素的值增加value。
如果指定的key對應的元素不是數實值型別並且不能被轉換為數值, 會將此值修改為value.
Memcache::replace()
通過key來尋找元素並替換其值。
當key對應的元素不存在時,返回FALSE。
---------------------------------------------