(PECL memcached >= 0.1.0)
Memcached::cas — �Ƚϲ�����ֵ
Memcached::cas()ִ��һ��"��鲢����"�IJ�������ˣ������ڵ�ǰ�ͻ������һ��ȡֵ��key
��Ӧ��ֵû�б������ͻ����ĵ�����£� ���ܹ���ֵд�롣�����ͨ��cas_token
�������еģ�
���������Memcachָ�����Ѿ����ڵ�Ԫ�ص�һ��Ψһ��64λֵ�� ������ȡ���ֵ��鿴Memcached::get*()
ϵ�з������ĵ���ע�⣺���ֵ��Ϊdouble��������ΪPHP�����Ϳռ����ơ�
��ע������Memcached��չ��Memcache��չһ���dz���Ҫ�����ƣ� ������һ��ϵͳ����Memcache�����ṩ���ij�ͻ�����ƣ��ֹ������£� ���Dz��ܱ�֤�߲����µ����ݰ�ȫ��
cas_token
���Ѵ���Ԫ�ع�����Ψһ��ֵ����Memcache���ɡ�
key
���ڴ洢ֵ�ļ�����
value
�洢��ֵ��
expiration
����ʱ�䣬Ĭ��Ϊ 0�� ������Ϣ��μ�����ʱ����
�ɹ�ʱ���� TRUE
�� ������ʧ��ʱ���� FALSE
��
�����Ԫ�س��Դ洢ʱ�����ڱ��ͻ������һ�λ�ȡ�������ͻ����ģ�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);
/* ����б����ڣ� ����������һ��ԭ����ӣ���������ͻ����Ѿ���ӣ� ����ͷ���false��*/
if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
$ips = array($_SERVER['REMOTE_ADDR']);
$m->add('ip_block', $ips);
/* ��������£����ip���б��У� ����cas��ʽȥ�洢�� �����������ͻ����Ĺ��� ��false */
} else {
$ips[] = $_SERVER['REMOTE_ADDR'];
$m->cas($cas, 'ip_block', $ips);
}
} while ($m->getResultCode() != Memcached::RES_SUCCESS);
?>