您好,登錄后才能下訂單哦!
php memcached方法有哪些,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
php memcached方法有:1、set();1、add();3、replace();4、get();5、delete();6、increment();7、decrement();8、flush();9、connect()等等。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
PHP操作Memcached的方法匯總
(一)memcache擴展
1、bool Memcache::set ( string $key
, mixed $var
[, int $flag
[, int $expire
]] )
#Key存在則更新值,不存在則設(shè)置k-v對。注:$var可以存儲任何數(shù)據(jù)
2、bool Memcache::add ( string $key
, mixed $var
[, int $flag
[, int $expire
]] )
#key不存在的時候才添加
3、bool Memcache::replace ( string $key
, mixed $var
[, int $flag
[, int $expire
]] )
#替換存在的key值,不存在key則返回錯誤
4、string Memcache::get ( string $key
[, int &$flags
] )
array Memcache::get ( array $keys
[, array &$flags
] )
#獲取一個或者多個值
5、bool Memcache::delete ( string $key
[, int $timeout
= 0 ] )
#刪除key元素,設(shè)置了timeout則多少秒后刪除
#【注意】有些版本對應(yīng)memcached使用timeout將會導致刪除失?。?可以)
6、int Memcache::increment ( string $key
[, int $value
= 1 ] )
#key存在且能轉(zhuǎn)換為數(shù)字,則加int;否則直接更換為value。當key不存在,則返回false
7、int Memcache::decrement ( string $key
[, int $value
= 1 ] )
8、bool Memcache::flush ( void )
#全部元素失效
9、bool Memcache::connect ( string $host
[, int $port
[, int $timeout=1
]] )
#連接memcache服務(wù)器,執(zhí)行完腳本后會自動關(guān)閉(使用close可以主動關(guān)閉)
10、bool Memcache::close ( void )
#關(guān)閉memcache的鏈接(這個函數(shù)不會關(guān)閉持久化連接)
11、mixed Memcache::pconnect ( string $host
[, int $port
[, int $timeout
]] )
#建立持久化連接
12、bool Memcache::addServer ( string $host
[, int $port
= 11211 [, bool $persistent
[, int $weight
[, int $timeout
[, int $retry_interval
[, bool $status
[, callback
$failure_callback
[, int $timeoutms
]]]]]]]] )
#增加一臺服務(wù)器到連接池,通過此方法打開的服務(wù),將會在腳本結(jié)束的時候關(guān)閉或者主動關(guān)閉close
#使用此方法,網(wǎng)絡(luò)連接不一定立即連接,而是等需要使用此服務(wù)器的時候,才會進行連接,因此即使添加大量的服務(wù)器到連接池也沒有開銷
參數(shù):
$persistent
是否持久化,默認true
$weight
表示權(quán)重
$retry_interval
服務(wù)器連接失敗時重試時間,默認為15秒,-1表示不重試
$status 控制此服務(wù)器是否被標記為在線狀態(tài)(假若連接失敗,連接池少了一個服務(wù)器,會影響原有的分配算法)
$failure_callback
連接失敗后執(zhí)行的函數(shù)(在故障轉(zhuǎn)移前執(zhí)行),包含兩個參數(shù),失敗主機host和port
13、array Memcache::getExtendedStats ([ string $type
[, int $slabid
[, int $limit
= 100 ]]] )
#getExtendedStats()返回一個二維關(guān)聯(lián)數(shù)據(jù)的服務(wù)器統(tǒng)計信息
#getExtendedStats(‘slabs’)獲取到每個服務(wù)器上活動slabs分塊的id
#getExtendedStats('cachedump', $slabid, $limit)獲取每個slab里面緩存的項
參數(shù):
#type 期望抓取的統(tǒng)計信息類型,可以使用的值有{reset, malloc, maps, cachedump, slabs, items, sizes}
#slabid 用于與參數(shù)type
聯(lián)合從指定slab分塊拷貝數(shù)據(jù),cachedump命令會完全占用服務(wù)器通常用于 比較嚴格的調(diào)試。
#limit 用于和參數(shù)type
聯(lián)合來設(shè)置cachedump時從服務(wù)端獲取的實體條數(shù)。
14、int Memcache::getServerStatus ( string $host
[, int $port
= 11211 ] )
#返回一個服務(wù)器的狀態(tài),0表示服務(wù)器離線,非0表示在線。
15、array Memcache::getStats ([ string $type
[, int $slabid
[, int $limit
= 100 ]]] )
#getStats()返回一個關(guān)聯(lián)數(shù)據(jù)的服務(wù)器統(tǒng)計信息。同上
16、string Memcache::getVersion ( void )
#返回版本號
17、bool Memcache::setCompressThreshold ( int $threshold
[, float $min_savings
] )
#開啟對于大值的自動壓縮
參數(shù):
#threshold 控制多大值進行自動壓縮的閾值。
#min_saving 指定經(jīng)過壓縮實際存儲的值的壓縮率,支持的值必須在0和1之間。默認值是0.2表示20%壓縮率
18、bool Memcache::setServerParams ( string $host
[, int $port
= 11211 [, int $timeout
[, int $retry_interval
= false [, bool $status
[, callback $failure_callback
]]]]] )
#用于運行時修改服務(wù)器參數(shù)
#參數(shù)同上
(二)memcached擴展
1、Memcached::__construct ([ string $persistent_id
] )
#默認情況下,Memcached實例在請求結(jié)束后會被銷毀。但可以在創(chuàng)建時通過persistent_id
為每個實例指定唯一的ID,在請求間共享實例。所有通過相同的persistent_id
值創(chuàng)建的實例共享同一個連接。
<?php # 創(chuàng)建一個普通的對象 $m1 = new Memcached(); echo get_class($m); /* 創(chuàng)建持久化對象 */ $m2 = new Memcached('story_pool'); $m3 = new Memcached('story_pool'); # 現(xiàn)在$m2和$m3共享相同的連接 ,可以使用isPresistent進行檢測 ?>
2、public bool Memcached::addServer( string $host
, int $port
[, int $weight
= 0 ] )
#增加指定服務(wù)器到服務(wù)器池中,此時不會建立與服務(wù)端的連接
3、public bool Memcached::addServers( array $servers
)
#添加多臺服務(wù)器到服務(wù)池中
4、public bool Memcached::cas( float $cas_token
,
string $key
, mixed $value
[, int $expiration
] )
#執(zhí)行一個"檢查并設(shè)置"的操作,它僅在當前客戶端最后一次取值后,該key
對應(yīng)的值沒有被其他客戶端修改的情況下,
才能夠?qū)⒅祵懭?。通過cas_token
參數(shù)進行檢查
5、public bool Memcached::casByKey ( float $cas_token
,
string $server_key
, string $key
, mixed $value
[, int $expiration
] )
#指定服務(wù)器,同上
#【$server_key也是一個普通的key, *ByKey系列接口的工作過程是: 首先, 對$server_key進行hash, 得到$server_key應(yīng)該存儲的服務(wù)器, 然后將相應(yīng)的操作在 $server_key所在的服務(wù)器上進行】
6、public bool Memcached::set( string $key
, mixed $value
[, int $expiration
] )
#將value值(值可以是任何有效的非資源型php類型)存到key下
7、public bool Memcached::setByKey ( string $server_key
, string $key
, mixed $value
[, int $expiration
] )
#指定服務(wù)器,同上
8、public bool Memcached::setMulti ( array $items
[, int $expiration
] )
#存儲多個元素
#$items array(‘key’=>’value’)
9、public bool Memcached::setMultiByKey ( string $server_key
, array $items
[, int $expiration
] )
#指定服務(wù)器,同上
10、public bool Memcached::add( string $key
, mixed $value
[, int $expiration
] )
#向一個新的key下面增加一個元素,key存在則失敗
11、public bool Memcached::addByKey( string $server_key
, string $key
, mixed $value
[, int $expiration
] )
#在指定服務(wù)器上的一個新的key下增加一個元素
12、public bool Memcached::touch( string $key
, int $expiration
)
#為key設(shè)置新的過期時間
13、public bool Memcached::touchByKey( string $server_key
, string $key
, int $expiration
)
#為指定服務(wù)器中的key設(shè)置過期時間
14、public bool Memcached::append( string $key
, string $value
)
#向已經(jīng)存在的元素后追加value
參數(shù)對應(yīng)的字符串值
注意:如果Memcached::OPT_COMPRESSION常量開啟,這個操作會失敗,并引發(fā)一個警告,因為向壓縮數(shù)據(jù)后追加數(shù)據(jù)可能會導致解壓不了。
<?php $a = new Memcached(); $a->addServer('192.168.95.11', 11211); #$a->addServer('192.168.95.11', 11210); #$a->setOption(Memcached::OPT_COMPRESSION, false); $b=$a->append('e','popop'); echo "<pre>"; print_r($b); echo "</pre>";die; ?>
15、public bool Memcached::appendByKey ( string $server_key
, string $key
, string $value
)
#向指定服務(wù)器已經(jīng)存在的元素后追加value
參數(shù)對應(yīng)的字符串值
16、public bool Memcached::prepend( string $key
, string $value
)
#向一個已存在的元素前面追加數(shù)據(jù)
17、public bool Memcached::prependByKey( string $server_key
, string $key
, string $value
)
#向指定服務(wù)器已經(jīng)存在的元素前追加value
參數(shù)對應(yīng)的字符串值
18、public bool Memcached::replace ( string $key
, mixed $value
[, int $expiration
] )
#替換已存在key下的元素
19、public bool Memcached::replaceByKey( string $server_key
, string $key
, mixed $value
[, int $expiration
] )
#替換指定服務(wù)器的key下的元素
20、public int Memcached::decrement ( string $key
[, int $offset
= 1 ] )
#減小數(shù)值元素的值
#不存在key返回錯誤、減到小于0結(jié)果為0、元素不是數(shù)值以0對待
21、public int Memcached::decrementByKey( string $server_key
, string $key
[, int $offset
= 1 [, int $initial_value
= 0 [, int $expiry
= 0 ]]] )
#指定服務(wù)器減小數(shù)值元素的值,不存在的key則初始化為0
22、public int Memcached::increment ( string $key
[, int $offset
= 1 ] )
#增加數(shù)值元素的值
23、public int Memcached::incrementByKey( string $server_key
, string $key
[, int $offset
= 1 [, int $initial_value
= 0 [, int $expiry
= 0 ]]] )
#同上
24、public bool Memcached::delete( string $key
[, int $time
= 0 ] )
#刪除一個元素
#設(shè)置時間后,表明在time時間后才刪除,在這段時間內(nèi)get、add、replace命令對該key都無效。
25、public bool Memcached::deleteByKey ( string $server_key
, string $key
[, int $time
= 0 ] )
#同上
26、public bool Memcached::deleteMulti ( array $keys
[, int $time
= 0 ] )
#刪除多個key
27、public bool Memcached::deleteMultiByKey( string $server_key
, array $keys
[, int $time
= 0 ] )
#同上
28、public bool Memcached::flush([ int $delay
= 0 ] )
#讓所有緩沖區(qū)的數(shù)據(jù)失效
29、public mixed Memcached::get( string $key
[, callback $cache_cb
[,
float &$cas_token
]] )
#檢索一個元素
#$callback 回調(diào)函數(shù),沒有$key之值時,將會調(diào)用這個函數(shù),會傳入三個參數(shù)memcache對象、key、引用傳遞變量的返回值(true時返回)
#$cas_token 配合cas使用。同一個客戶端最后一個get將會生成一個64位唯一標識符存儲,然后使用cas來查看更改,假若在此過程中被其他客戶端修改則,返回false
30、public mixed Memcached::getByKey( string $server_key
, string $key
[, callback $cache_cb
[,
float &$cas_token
]] )
#從特定的服務(wù)器檢索元素
31、public mixed Memcached::getMulti( array $keys
[, array &$cas_tokens
[, int $flags
]] )
#檢索多個元素,提供$cas值,則添加cas值
#$flags 只能為Memcached::GET_PRESERVE_ORDER,保證返回的key的順序和請求時一致。
32、public array Memcached::getMultiByKey ( string $server_key
, array $keys
[, string &$cas_tokens
[, int $flags
]] )
#從特定服務(wù)器檢索多個元素
33、public array Memcached::getAllKeys( void )
# Gets the keys stored on all the servers
34、public bool Memcached::getDelayed( array $keys
[, bool $with_cas
[,
callback $value_cb
]]
)
#向服務(wù)器端請求keys,這個方法不會等待響應(yīng)而是立即返回bool,收集結(jié)果使用fetch、fetchAll
#$with_cas true時,則表示同時記錄cas值
#$value_cb
結(jié)果回調(diào)函數(shù)處理
35、public bool Memcached::getDelayedByKey( string $server_key
, array $keys
[, bool $with_cas
[,
callback $value_cb
]]
)
#從指定服務(wù)器中請求多個keys
36、public array Memcached::fetch ( void )
#從最后一次請求中抓取下一個結(jié)果。
37、public array Memcached::fetchAll( void )
#抓取所有剩余的結(jié)果
38、public mixed Memcached::getOption( int $option
)
#獲取Memcached的選項值
# OPT_*系列常量中的一個。
39、public bool Memcached::setOption( int $option
, mixed $value
)
#設(shè)置一個memcached選項
40、public bool Memcached::setOptions( array $options
)
#設(shè)置多個memcached選項
41、public int Memcached::getResultCode( void )
#返回最后一次操作的結(jié)果代碼
42、public string Memcached::getResultMessage( void )
#返回最后一次操作的結(jié)果描述消息
43、public array Memcached::getServerByKey( string $server_key
)
#獲取key所映射的服務(wù)器信息
44、public array Memcached::getServerList( void )
#獲取服務(wù)器池中服務(wù)器表
45、public array Memcached::getStats ( void )
#獲取服務(wù)器池中的統(tǒng)計信息
46、public array Memcached::getVersion( void )
#獲取服務(wù)器池中所有服務(wù)器版本信息
47、public bool Memcached::isPersistent( void )
#測試服務(wù)器是否永久連接
48、public bool Memcached::isPristine ( void )
#測試memcache是否最近創(chuàng)建的
49、public bool Memcached::quit ( void )
#關(guān)閉連接
50、public bool Memcached::resetServerList( void )
#重置所有服務(wù)器的服務(wù)器服務(wù)信息
51、public void Memcached::setSaslAuthData( string $username
, string $password
)
#Set the credentials to use for authentication
看完上述內(nèi)容,你們掌握php memcached方法有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。