PHP的51个Memcached方法(22-31)

  1. public bool getDelayed ( array $keys [, bool $with_cas [, callable $value_cb ]] )
    获取Memcached中的键值在$keys里的数据,但此方法是异步的,不等Memcached准备好资源就直接返回,后续通过fetch或fetchAll获取本次请求的数据。

    如果设置$with_cas为true,则Memcached会为fetch或fetchAll准备的数据中加入cas_token。

    如果需要在Memcached准备返回数据的过程中,对每个数据要做类似的操作,如每个数据都增1,则可以通过指定回掉函数$value_cb实现。Memcached每准备完一个数据(查找并放入一个服务端临时数组中)就会调用回掉函数一次,回掉函数中进行相关处理即可。回掉函数的定义如下:

    function result_cb($memc, $item)
    {
    //对$item的处理
    }

    其中$memc为Memcached对象,$item为Memcached准备好的一个待返回数据,它的格式如下:
    array(“key”=>键值, “value”=>数据值 [,”cas”=>cas token值])
    如果调用getDelayed时设置\with_cas为true则$item中有cas,否则没有。

  2. public bool getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callable $value_cb ]] )
    同getDelayed(),但可以通过$server_key指定某个固定的服务器获取相关数据,前提是这些数据也是通过相同的$server_key存入Memcached中的。

  3. public mixed getMulti ( array $keys [, array &$cas_tokens [, int $flags ]] )
    getDelayed()的同步版本,即向服务端Memcached一次性请求返回多个键值的数据后等待服务端响应,而不是直接返回。

    如果设置了$cas_tokens,则被找到的数据的cas token会形成数组存入$cas_tokens随数据一块返回。

    如果设置了$flag,则可对返回数据的结果进行一些额外操作,目前仅支持$flag设置为Memcached::GET_PRESERVE_ORDER,这样就会使得返回数据按照请求中的key的顺序排列。

  4. public array getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens [, int $flags ]] )
    同getMultiByKey,但可以通过$server_key指定某个固定的服务器获取相关数据,前提是这些数据也是通过相同的$server_key存入Memcached中的。

  5. public mixed getOption ( int $option )
    获取服务端Memcached的值为$option的配置项的值。

    Memcached会被PHP插件依赖的libmemcached进行一些配置,PHP的Memcached插件本身也会进行一些默认配置,这些配置均可以通过getOption来查询当前的配置信息。

    详见:PHP的Memcached插件常量说明

  6. public int getResultCode ( void )
    获取返回上一次客户端对服务端Memcached请求操作的结果代码,参考:

    00 = MEMCACHED_SUCCESS
    01 = MEMCACHED_FAILURE
    02 = MEMCACHED_HOST_LOOKUP_FAILURE // getaddrinfo() and getnameinfo() only
    03 = MEMCACHED_CONNECTION_FAILURE
    04 = MEMCACHED_CONNECTION_BIND_FAILURE // DEPRECATED see MEMCACHED_HOST_LOOKUP_FAILURE
    05 = MEMCACHED_WRITE_FAILURE
    06 = MEMCACHED_READ_FAILURE
    07 = MEMCACHED_UNKNOWN_READ_FAILURE
    08 = MEMCACHED_PROTOCOL_ERROR
    09 = MEMCACHED_CLIENT_ERROR
    10 = MEMCACHED_SERVER_ERROR // Server returns “SERVER_ERROR”
    11 = MEMCACHED_ERROR // Server returns “ERROR”
    12 = MEMCACHED_DATA_EXISTS
    13 = MEMCACHED_DATA_DOES_NOT_EXIST
    14 = MEMCACHED_NOTSTORED
    15 = MEMCACHED_STORED
    16 = MEMCACHED_NOTFOUND
    17 = MEMCACHED_MEMORY_ALLOCATION_FAILURE
    18 = MEMCACHED_PARTIAL_READ
    19 = MEMCACHED_SOME_ERRORS
    20 = MEMCACHED_NO_SERVERS
    21 = MEMCACHED_END
    22 = MEMCACHED_DELETED
    23 = MEMCACHED_VALUE
    24 = MEMCACHED_STAT
    25 = MEMCACHED_ITEM
    26 = MEMCACHED_ERRNO
    27 = MEMCACHED_FAIL_UNIX_SOCKET // DEPRECATED
    28 = MEMCACHED_NOT_SUPPORTED
    29 = MEMCACHED_NO_KEY_PROVIDED /* Deprecated. Use MEMCACHED_BAD_KEY_PROVIDED! */
    30 = MEMCACHED_FETCH_NOTFINISHED
    31 = MEMCACHED_TIMEOUT
    32 = MEMCACHED_BUFFERED
    33 = MEMCACHED_BAD_KEY_PROVIDED
    34 = MEMCACHED_INVALID_HOST_PROTOCOL
    35 = MEMCACHED_SERVER_MARKED_DEAD
    36 = MEMCACHED_UNKNOWN_STAT_KEY
    37 = MEMCACHED_E2BIG
    38 = MEMCACHED_INVALID_ARGUMENTS
    39 = MEMCACHED_KEY_TOO_BIG
    40 = MEMCACHED_AUTH_PROBLEM
    41 = MEMCACHED_AUTH_FAILURE
    42 = MEMCACHED_AUTH_CONTINUE
    43 = MEMCACHED_PARSE_ERROR
    44 = MEMCACHED_PARSE_USER_ERROR
    45 = MEMCACHED_DEPRECATED
    46 = MEMCACHED_IN_PROGRESS
    47 = MEMCACHED_SERVER_TEMPORARILY_DISABLED
    48 = MEMCACHED_SERVER_MEMORY_ALLOCATION_FAILURE
    49 = MEMCACHED_MAXIMUM_RETURN /* Always add new error code before */
    11 = MEMCACHED_CONNECTION_SOCKET_CREATE_FAILURE = MEMCACHED_ERROR

  7. public string getResultMessage ( void )
    获取返回上一次客户端对服务端Memcached请求操作的结果信息(结果代码的英文翻译)。

  8. public array getServerByKey ( string $server_key )
    查询所有*ByKey方法操作的服务器信息。\$server_key是*ByKey方法使用的服务器标识字符串。

    返回的服务器信息结构为:
    array(“host”=>服务器IP地址,”port”=>服务器端口值,”weight”=>服务器权重)
    这些信息是在调用addServer()或addServers()时由客户端提供的。

  9. public array getServerList ( void )
    返回addServer()或addServers()时由客户端提供的服务器列表信息。
    返回数据是个数组,数组中的每个元素的格式为:
    array(“host”=>服务器IP地址,”port”=>服务器端口值,”weight”=>服务器权重)

  10. public array getStats ( void )
    返回所有Memcached服务器的状态信息,返回的数据为数组,其中的每个数据格式为:键值为服务器的IP地址:端口,值为服务器状态信息数组:

    array(
    [服务器1的IP地址 : 服务器1的端口]=>服务器1的状态信息数组,
    [服务器2的IP地址 : 服务器2的端口]=>服务器2的状态信息数组,
    …)

    服务器状态信息结构如下:

    array(
    [状态属性1] => 状态属性1的值
    [状态属性2] => 状态属性2的值

    )

    状态属性参考(来自github上Memcached协议):
    Memcached协议

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值