下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用。
Memcached::OPT_COMPRESSION开启或关闭压缩功能。当开启的时候,item 的值超过某个阈值(当前是 100 bytes)时,会首先对值进行压缩然后存储,并 在获取该值时进行解压缩然后返回,使得压缩对应用层透明。
类型:bool,默认:true。
Memcached::OPT_SERIALIZER
指定对于非标量值进行序列化的序列化工具。可用的值有 Memcached::SERIALIZER_PHP
和 Memcached::SERIALIZER_IGBINARY。后者仅在 memcached 配置时开启
--enable-memcached-igbinary 选项并且
igbinary 扩展被加载时才有效。
类型:int,默认:Memcached::SERIALIZER_PHP。
Memcached::SERIALIZER_PHP默认的 PHP 序列化工具(即 serialize 方法)。
Memcached::SERIALIZER_IGBINARY» igbinary 序列化工具。它将 php 的数据结构 存储为紧密的二进制形式,在时间和空间上都有所改进。
Memcached::SERIALIZER_JSONJSON序列化。
Memcached::OPT_PREFIX_KEY
可以用于为 key 创建“域”。这个值将会被作为每个 key 的前缀,它不能长于 128 个字符,
并且将会缩短最大可允许的 key 的长度。这个前缀仅仅用于被存储的元素的 key,而不会用于服务器 key。
类型:string,默认:""。
Memcached::OPT_HASH
指定存储元素 key 使用的 hash 算法。可用的值是 Memcached::HASH_* 系列的常量。
每种 hash 算法都有它的优势和劣势,在你不了解或不确定哪种算法对你更有利时,请使用默认值。
类型:int,默认:Memcached::HASH_DEFAULT
Memcached::HASH_DEFAULT默认的(Jenkins one-at-a-time)元素 key hash 算法
Memcached::HASH_MD5md5 元素 key hash 算法。
Memcached::HASH_CRCCRC 元素 key hash 算法。
Memcached::HASH_FNV1_64FNV1_64 元素 key hash 算法。
Memcached::HASH_FNV1A_64FNV1_64A 元素 key hash 算法。
Memcached::HASH_FNV1_32FNV1_32 元素 key hash 算法。
Memcached::HASH_FNV1A_32FNV1_32A 元素 key hash 算法。
Memcached::HASH_HSIEHHsieh 元素 key hash 算法。
Memcached::HASH_MURMURMurmur 元素 key hash 算法。
Memcached::OPT_DISTRIBUTION指定元素 key 分布到各个服务器的方法。当前支持的方法有余数分步法合一致性 hash 算法两种。一致性 hash 算法提供 了更好的分配策略并且在添加服务器到集群时可以最小化缓存丢失。
类型:int,默认::Memcached::DISTRIBUTION_MODULA。
Memcached::DISTRIBUTION_MODULA余数分布算法。
Memcached::DISTRIBUTION_CONSISTENT一致性分布算法(基于 libketama)。
Memcached::OPT_LIBKETAMA_COMPATIBLE开启或关闭兼容的 libketama 类行为。当开启此选项后,元素 key 的 hash 算法将会被设置为 md5 并且分布算法将会 采用带有权重的一致性 hash 分布。这一点非常有用因为其他基于 libketama 的客户端(比如 Python、Ruby 等)在同样 的服务端配置下可以透明的访问 key。
注意:
如果你要使用一致性 hash 算法强烈建议开启此选项,并且这个选项可能在未来的发布版中被设置为默认开启。
类型:boolean,默认:false。
Memcached::OPT_BUFFER_WRITES开启或关闭 I/O 缓存。开启 I/O 缓存会导致存储命令不实际发送而是存储到缓冲区中。任意的检索数据操作都会导致 缓存中的数据被发送到远程服务端。退出连接或关闭连接也会导致缓存数据被发送到远程服务端。
类型:boolean,默认:false。
Memcached::OPT_BINARY_PROTOCOL开启使用二进制协议。请注意这个选项不能在一个打开的连接上进行切换。
类型:boolean,默认:false。
Memcached::OPT_NO_BLOCK开启或关闭异步 I/O。这将使得存储函数传输速度最大化。
类型:boolean,默认:false。
Memcached::OPT_NOREPLY启用或禁用忽略存储命令的结果(set、add、replace、append、prepend、delete、increment、decrement 等)。存储命令将会直接发送而无需花费时间等待回复(没有回复)。Memcached::get() 等检索命令不受此设置的影响。
类型:bool,默认:false。
Memcached::OPT_TCP_NODELAY开启或关闭已连接 socket 的无延迟特性(在某些幻境可能会带来速度上的提升)。
类型:boolean,默认:false。
Memcached::OPT_SOCKET_SEND_SIZEsocket 发送缓冲的最大值。
类型:int,默认:根据不同的平台/内核配置不同
Memcached::OPT_SOCKET_RECV_SIZEsocket 接收缓冲的最大值。
类型:int,默认:根据不同的平台/内核配置不同
Memcached::OPT_CONNECT_TIMEOUT在非阻塞模式下这里设置的值就是 socket 连接的超时时间,单位是毫秒。
类型:int,默认:1000。
Memcached::OPT_RETRY_TIMEOUT等待失败的连接重试的时间,单位秒。
类型:int,默认:0。
Memcached::OPT_SEND_TIMEOUTsocket 发送超时时间,单位微秒。在这种情况下您不能使用非阻塞 I/O,这将使得您仍然有数据会发送超时。
类型:int,默认:0。
Memcached::OPT_RECV_TIMEOUTsocket 读取超时时间,单位微秒。在这种情况下您不能使用非阻塞 I/O,这将使得您仍然有数据会读取超时。
类型:int,默认:0。
Memcached::OPT_POLL_TIMEOUTpoll 连接超时时间,单位毫秒。
类型:int,默认:1000。
Memcached::OPT_CACHE_LOOKUPS开启或禁用 DNS 查找缓存。
类型:boolean,默认:false。
Memcached::OPT_SERVER_FAILURE_LIMIT指定一个服务器连接的失败重试次数限制。在达到此数量的失败重连后此服务器将被从服务器池中移除。
类型:int,默认:0。
Memcached::HAVE_IGBINARY指示是否支持 igbinary 的序列化。
类型:boolean。
Memcached::HAVE_JSON指示是否支持 json 的序列化。
类型:boolean。
Memcached::HAVE_MSGPACK表示 msgpack 序列化支持是否有效。
类型:bool。
自 Memcached 3.0.0 起可用。
Memcached::HAVE_SESSION类型:bool.
自 Memcached 3.0.0 起可用。
Memcached::HAVE_SASL类型:bool。
自 Memcached 3.0.0 起可用。
Memcached::GET_EXTENDEDMemcached::get()、Memcached::getMulti() 和 Memcached::getMultiByKey() 的 flag,确保返回 CAS 令牌值。
自 Memcached 3.0.0 起可用。
Memcached::GET_PRESERVE_ORDER一个用于 Memcached::getMulti() 和 Memcached::getMultiByKey() 的标记用以确保返回的 key 和请求的 key 顺序保持一致。 不存在的 key 将会得到一个 NULL 值。
Memcached::RES_SUCCESS操作成功。
Memcached::RES_FAILURE某种方式的操作失败。
Memcached::RES_HOST_LOOKUP_FAILUREDNS 查找失败。
Memcached::RES_UNKNOWN_READ_FAILURE读取网络数据失败。
Memcached::RES_PROTOCOL_ERROR错误的 memcached 协议命令。
Memcached::RES_CLIENT_ERROR客户端错误。
Memcached::RES_SERVER_ERROR服务端错误。
Memcached::RES_WRITE_FAILURE向网络写数据失败。
Memcached::RES_DATA_EXISTS比较并交换值操作失败(cas 方法):尝试向服务端存储数据时由于自此连接最后一次取此 key 对应数据之后被改变导致失败。
Memcached::RES_NOTSTORED元素没有被存储,但并不是因为一个错误。这通常表明 add(元素已存在)或 replace(元素不存在)方式存储数据失败或者元素已经在一个删除序列中(延时删除)。
Memcached::RES_NOTFOUND元素未找到(通过 get 或 cas 操作时)。
Memcached::RES_PARTIAL_READ局部网络数据读错误。
Memcached::RES_SOME_ERRORS在多 key 获取的时候发生错误。
Memcached::RES_NO_SERVERS服务器池空。
Memcached::RES_END结果集到结尾了。
Memcached::RES_ERRNO系统错误。
Memcached::RES_BUFFERED操作被缓存。
Memcached::RES_TIMEOUT操作超时。
Memcached::RES_BAD_KEY_PROVIDED提供了无效的 key。
Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE创建网络 socket 失败。
Memcached::RES_PAYLOAD_FAILURE不能压缩/解压缩或序列化/反序列化值。
Memcached::RES_AUTH_PROBLEM自 Memcached 3.0.0 起可用。
Memcached::RES_AUTH_FAILURE自 Memcached 3.0.0 起可用。
Memcached::RES_AUTH_CONTINUE自 Memcached 3.0.0 起可用。
Memcached::RES_E2BIG自 Memcached 3.0.0 起可用。
Memcached::RES_KEY_TOO_BIG自 Memcached 3.0.0 起可用。
Memcached::RES_SERVER_TEMPORARILY_DISABLED自 Memcached 3.0.0 起可用。
Memcached::RES_SERVER_MEMORY_ALLOCATION_FAILURE自 Memcached 3.0.0 起可用。