下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用。
Memcached::OPT_COMPRESSION开启或关闭负载压缩。开启后,item 值的长度超过特定阈值(当前是 2000 字节)时,会对值压缩并存储,在检索时会以透明方式解压缩。可以使用 memcached.compression_threshold INI 配置来设置阈值。
Memcached::OPT_COMPRESSION_TYPEMemcached::COMPRESSION_FASTLZ、Memcached::COMPRESSION_ZLIB 和
Memcached::COMPRESSION_ZSTD。
类型:int,默认:Memcached::COMPRESSION_FASTLZ。
Memcached::COMPRESSION_FASTLZMemcached::COMPRESSION_ZLIBMemcached::COMPRESSION_ZSTDMemcached::OPT_COMPRESSION_LEVELMemcached::COMPRESSION_FASTLZ 不支持压缩级别。Memcached::COMPRESSION_ZSTD:最低级别为 -22,最高级别为 22。Memcached::COMPRESSION_ZLIB:最低级别为 0,最高级别为 9。类型:int,默认:3。
Memcached::OPT_SERIALIZERMemcached::SERIALIZER_PHP、Memcached::SERIALIZER_IGBINARY、Memcached::SERIALIZER_JSON、Memcached::SERIALIZER_JSON_ARRAY
和 Memcached::SERIALIZER_MSGPACK。
类型:int,默认:优先 Memcached::SERIALIZER_IGBINARY(如果有效),其次
Memcached::SERIALIZER_MSGPACK(如果有效),最后 Memcached::SERIALIZER_PHP。
Memcached::SERIALIZER_PHP默认的 PHP 序列化工具(即 serialize 方法)。
Memcached::SERIALIZER_IGBINARYMemcached::SERIALIZER_JSONJSON 序列化器。此序列化器将 JSON 反序列化为对象。
Memcached::SERIALIZER_JSON_ARRAYMemcached::SERIALIZER_MSGPACKmsgpack 扩展时,才支持此序列化器。
Memcached::OPT_PREFIX_KEY128 个字符,
并且将会缩短最大可允许的 key 的长度。这个前缀仅仅用于被存储的元素的 key,而不会用于服务器 key。
类型:string,默认:""。
Memcached::OPT_HASHMemcached::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类型:int,默认::Memcached::DISTRIBUTION_MODULA。
Memcached::DISTRIBUTION_MODULA余数分布算法。
Memcached::DISTRIBUTION_CONSISTENT一致性分布算法(基于 libketama)。
Memcached::DISTRIBUTION_VIRTUAL_BUCKETMemcached::OPT_LIBKETAMA_COMPATIBLE开启或关闭兼容的 libketama 类行为。当开启此选项后,元素 key 的 hash 算法将会被设置为 md5 并且分布算法将会 采用带有权重的一致性 hash 分布。这一点非常有用因为其他基于 libketama 的客户端(比如 Python、Ruby 等)在同样 的服务端配置下可以透明的访问 key。
注意:
如果要使用一致性 hash 算法强烈建议开启此选项,并且这个选项可能在未来的发布版中被设置为默认开启。
Memcached::OPT_LIBKETAMA_HASH类型:int。
Memcached::OPT_TCP_KEEPALIVEMemcached::OPT_BUFFER_WRITESMemcached::OPT_BINARY_PROTOCOLMemcached::OPT_NO_BLOCKMemcached::OPT_NOREPLYMemcached::OPT_TCP_NODELAY启用或禁用连接套接字的无延迟特性(在某些环境中可能提升速度)。
Memcached::OPT_SOCKET_SEND_SIZE类型:int,默认:根据不同的平台/内核配置不同
Memcached::OPT_SOCKET_RECV_SIZE类型:int,默认:根据不同的平台/内核配置不同
Memcached::OPT_CONNECT_TIMEOUT类型:int,默认:1000。
Memcached::OPT_RETRY_TIMEOUT类型:int,默认:2。
Memcached::OPT_DEAD_TIMEOUT0 表示不重试。
类型:int,默认:0。
Memcached::OPT_SEND_TIMEOUT类型:int,默认:0。
Memcached::OPT_RECV_TIMEOUT类型:int,默认:0。
Memcached::OPT_POLL_TIMEOUT类型:int,默认:1000。
Memcached::OPT_CACHE_LOOKUPSMemcached::OPT_SERVER_FAILURE_LIMIT类型:int,默认:5。
Memcached::OPT_SERVER_TIMEOUT_LIMIT类型:int,默认:0。
Memcached::OPT_AUTO_EJECT_HOSTS
从列表中移除已禁用的服务器。需与 Memcached::OPT_SERVER_FAILURE_LIMIT
和 Memcached::OPT_SERVER_TIMEOUT_LIMIT 配合使用。
注意:
Memcached::OPT_VERIFY_KEYMemcached::OPT_USE_UDPMemcached::OPT_NUMBER_OF_REPLICAS类型:int,默认:0。
Memcached::OPT_RANDOMIZE_REPLICA_READSMemcached::OPT_REMOVE_FAILED_SERVERSMemcached::OPT_SERVER_FAILURE_LIMIT
和 Memcached::OPT_SERVER_TIMEOUT_LIMIT 配合使用。
Memcached::HAVE_IGBINARY类型:bool。
Memcached::HAVE_JSON类型:bool。
Memcached::HAVE_MSGPACK类型:bool。
自 Memcached 3.0.0 起可用。
Memcached::HAVE_ZSTD类型:bool。
自 Memcached 3.3.0 起可用。
Memcached::HAVE_ENCODING类型:bool。
自 Memcached 3.1.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()
的 flag 用以确保返回的 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_STOREDMemcached::RES_DELETEDMemcached::RES_STATMemcached::RES_ITEMMemcached::RES_NOT_SUPPORTEDMemcached::RES_FETCH_NOTFINISHEDMemcached::RES_SERVER_MARKED_DEADMemcached::RES_UNKNOWN_STAT_KEYMemcached::RES_INVALID_HOST_PROTOCOLMemcached::RES_MEMORY_ALLOCATION_FAILUREMemcached::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 起可用。