(PECL memcached >= 0.1.0)
Memcached::cas — 锟饺较诧拷锟斤拷锟斤拷值
Memcached::cas()执锟斤拷一锟斤拷"锟斤拷椴拷锟斤拷锟�"锟侥诧拷锟斤拷锟斤拷锟斤拷耍锟斤拷锟斤拷锟斤拷诘锟角帮拷突锟斤拷锟斤拷锟斤拷一锟斤拷取值锟襟,革拷key
锟斤拷应锟斤拷值没锟叫憋拷锟斤拷锟斤拷锟酵伙拷锟斤拷锟睫改碉拷锟斤拷锟斤拷拢锟� 锟斤拷锟杰癸拷锟斤拷值写锟诫。锟斤拷锟斤拷锟酵拷锟�cas_token
锟斤拷锟斤拷锟斤拷锟叫的o拷
锟斤拷锟斤拷锟斤拷锟斤拷锟組emcach指锟斤拷锟斤拷锟窖撅拷锟斤拷锟节碉拷元锟截碉拷一锟斤拷唯一锟斤拷64位值锟斤拷 锟斤拷锟斤拷锟斤拷取锟斤拷锟街碉拷锟介看Memcached::get*()
系锟叫凤拷锟斤拷锟斤拷锟侥碉拷锟斤拷注锟解:锟斤拷锟街碉拷锟轿猟ouble锟斤拷锟斤拷锟斤拷锟斤拷为PHP锟斤拷锟斤拷锟酵空硷拷锟斤拷锟狡★拷
锟斤拷注锟斤拷锟斤拷锟斤拷Memcached锟斤拷展锟斤拷Memcache锟斤拷展一锟斤拷锟角筹拷锟斤拷要锟斤拷锟斤拷锟狡o拷 锟斤拷锟斤拷锟斤拷一锟斤拷系统锟斤拷锟斤拷Memcache锟斤拷锟斤拷锟结供锟斤拷锟侥筹拷突锟斤拷锟斤拷锟狡o拷锟街癸拷锟斤拷锟斤拷锟铰o拷 锟斤拷锟角诧拷锟杰憋拷证锟竭诧拷锟斤拷锟铰碉拷锟斤拷锟捷帮拷全锟斤拷
cas_token
锟斤拷锟窖达拷锟斤拷元锟截癸拷锟斤拷锟斤拷唯一锟斤拷值锟斤拷锟斤拷Memcache锟斤拷锟缴★拷
key
锟斤拷锟节存储值锟侥硷拷锟斤拷锟斤拷
value
锟芥储锟斤拷值锟斤拷
expiration
锟斤拷锟斤拷时锟戒,默锟斤拷为 0锟斤拷 锟斤拷锟斤拷锟斤拷息锟斤拷渭锟�锟斤拷锟斤拷时锟斤拷锟斤拷
锟缴癸拷时锟斤拷锟斤拷 TRUE
锟斤拷 锟斤拷锟斤拷锟斤拷失锟斤拷时锟斤拷锟斤拷 FALSE
锟斤拷
锟斤拷锟斤拷锟皆拷爻锟斤拷源娲⑹憋拷锟斤拷锟斤拷诒锟斤拷突锟斤拷锟斤拷锟斤拷一锟轿伙拷取锟斤拷锟斤拷锟斤拷锟酵伙拷锟斤拷锟睫改o拷Memcached::getResultCode()
锟斤拷锟斤拷锟斤拷Memcached::RES_DATA_EXISTS
锟斤拷
Example #1 Memcached::cas() 示锟斤拷
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
do {
/* 锟斤拷取ip锟叫憋拷锟皆硷拷锟斤拷锟侥憋拷锟� */
$ips = $m->get('ip_block', null, $cas);
/* 锟斤拷锟斤拷斜锟斤拷锟斤拷冢锟� 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷一锟斤拷原锟斤拷锟斤拷樱锟斤拷锟斤拷锟斤拷锟斤拷锟酵伙拷锟斤拷锟窖撅拷锟斤拷樱锟� 锟斤拷锟斤拷头锟斤拷锟絝alse锟斤拷*/
if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
$ips = array($_SERVER['REMOTE_ADDR']);
$m->add('ip_block', $ips);
/* 锟斤拷锟斤拷锟斤拷锟斤拷拢锟斤拷锟斤拷ip锟斤拷锟叫憋拷锟叫o拷 锟斤拷锟斤拷cas锟斤拷式去锟芥储锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟酵伙拷锟斤拷锟睫改癸拷锟斤拷 锟津返伙拷false */
} else {
$ips[] = $_SERVER['REMOTE_ADDR'];
$m->cas($cas, 'ip_block', $ips);
}
} while ($m->getResultCode() != Memcached::RES_SUCCESS);
?>