您的位置:首页 > 数据库 > Memcache

PHP的51个Memcached方法(12-21)

2016-07-25 23:47 483 查看
public bool delete ( string $key [, int $time = 0 ] )

删除服务端Memcached中以$key为键值的数据。

如果设置了可选参数$time,则在$time时间内:键值为$key的数据不是立刻被删除,而是被放到一个待删除队列中。一旦数据被放入待删除队列,对于客户端该数据的操作(key为$key的操作)仅set会成功,get、add、replace都将失败。

参数$time与add中解释的一样,如果小于一个月则从服务器接收到该指令开始计时,否则按照1970年1月1日零时零点零分开始计时。

public bool deleteByKey ( string $server_key , string $key [, int $time = 0 ] )

与delete相同,只不过可以删除固定服务器上的数据。

public bool deleteMulti ( array $keys [, int $time = 0 ] )

多个delete操作一起进行,可以将待删除的数据的键值放入一个数组$keys中。这些数据将一起被操作,齐塔解释同delete.

public bool deleteMultiByKey ( string $server_key , array $keys [, int $time = 0 ] )

同deleteMulti,可指定通过$server_key对某一服务器上的数据进行操作,前提是当初放入memcached时相关的数据是通过同一个$server_key放入的。

public array fetch ( void )

与getDelayed()或getDelayedByKey()配合使用,getDelayed()或getDelayedByKey()通知服务器准备相关数据,fetch获取数据中的一条。

public array fetchAll ( void )

与getDelayed()或getDelayedByKey()配合使用,getDelayed()或getDelayedByKey()通知服务器准备相关数据,fetchAll 获取还未被获取的所有数据。比如getDelayed()或getDelayedByKey()后服务器找到了10个符合要去的数据,fetch()两次获取了2条数据,fetchAll()可以获取剩余的所有8条数据。

public bool flush ([ int $delay = 0 ] )

使得所有位于服务端Memcached中的数据失效,无法再获取到(除非再次存入)。如果指定了超时时间$delay,则数据失效发生在$delay秒之后,不是服务器接受到指令后立即失效。

public mixed get ( string $key [, callable $cache_cb [, float &$cas_token ]] )

获取服务端键值是\$key的数据。

如果指定了$cas_token,则服务端的Memcached会生产一个64位浮点数放入$cas_token中,用于cas()或casByKey().

如果服务端找不到键值是$key的数据,而客户端对这种情况不允许,则可以通过设置回掉函数$cache_cb强行指定一个值返回并放入Memcached中。回掉函数需要返回布尔值通知get函数回掉函数是否成功的指定了$key对应的数据的值,如成功,则get返回该值并写入Memcached中,否则返回FALSE.

回掉函数定义如下:

function user_define_cb(\$memc, \$key, &\$value)
{
//给$value赋值
}


其中,$memc为Memcached对象,$key为前端请求的键值。

public array getAllKeys ( void )

遍历所有客户端服务器列表中的Memcached服务器,在每个服务器上都获取所有的键值。

此方法要慎用,由于不是Memcached协议提供的原子交易,获取的key不保证一致性,比如在获取的时候又有新增的数据,不一定会被获取到,获取的时候有删除数据,删除的数据可能仍然被获取到。

public mixed getByKey ( string $server_key , string $key [, callable $cache_cb [, float &$cas_token ]] )

同get(),但是可以通过指定$server_key而在某一固定服务器上获取数据,前提是待获取的数据是用相同的$server_key存入Memcached中的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  memcached php