Memcached命令
Memcached引擎支持基于TCP(Memcached Text Protocol)的文本协议和二进制(Memcached Binary Protocol)协议,任何兼容Memcached协议的客户端都可以访问DCS。
文本协议
Memcached文本协议通过ASCII文本传递命令,便于用户编写客户端和调测问题,甚至可以直接使用Telnet连接Memcached实例。
Memcached文本协议与二进制协议相比,兼容更多的开源类型客户端,但文本协议不支持认证操作。
Memcached实例需要开启免密访问模式后,才能通过文本协议连接。此时Memcached实例的访问将不再受用户名、密码的认证保护。同一VPC内符合安全组规则的任何Memcached客户端均可连接访问Memcached实例,存在安全风险,请谨慎使用。
DCS Memcached实例对文本协议命令的支持情况如表1所示。
命令 |
功能 |
是否支持 |
---|---|---|
add |
新增数据 |
是 |
set |
设置数据,主要包括新增或者修改数据 |
是 |
replace |
更新数据 |
是 |
append |
向指定key的value末尾追加数据 |
是 |
prepend |
向指定key的value头部追加数据 |
是 |
cas |
检查并修改数据 |
是 |
get |
查询数据 |
是 |
gets |
查询数据详细信息 |
是 |
delete |
删除数据 |
是 |
incr |
算数增 |
是 |
decr |
算数减 |
是 |
touch |
修改数据过期时间 |
是 |
quit |
断开连接 |
是 |
flush_all |
清空数据
说明:
若提供可选参数delay,则delay取值必须为0。 |
是 |
version |
查询服务版本信息 |
是 |
stats |
运行统计信息管理
说明:
当前只支持查询基础统计信息,不支持可选参数操作命令。 |
是 |
cache_memlimit |
设置内存使用限制 |
否 |
slabs |
查询内部存储结构使用情况 |
否 |
lru |
数据过期删除策略管理 |
否 |
lru_crawler |
数据过期删除线程管理 |
否 |
verbosity |
日志级别管理 |
否 |
watch |
运行事件监控 |
否 |
二进制协议
Memcached二进制协议将命令及所操作的内容按照特定结构进行编码后发送,通过预定的字节串表示命令。
Memcached二进制协议与文本协议相比,功能更多,支持SASL认证更加安全,但可用的客户端数量较少。
DCS Memcached实例对二进制协议命令的支持情况如表2所示。
命令编码 |
命令 |
功能 |
是否支持 |
---|---|---|---|
0x00 |
GET |
查询数据 |
是 |
0x01 |
SET |
设置数据,主要包括新增或者修改数据。 |
是 |
0x02 |
ADD |
新增数据 |
是 |
0x03 |
REPLACE |
更新数据 |
是 |
0x04 |
DELETE |
删除数据 |
是 |
0x05 |
INCREMENT |
算数增 |
是 |
0x06 |
DECREMENT |
算数减 |
是 |
0x07 |
QUIT |
断开连接 |
是 |
0x08 |
FLUSH |
清空数据
说明:
若提供可选参数delay参数,则delay取值必须为0。 |
是 |
0x09 |
GETQ |
查询数据,在出现错误时不返回任何信息。 |
是 |
0x0a |
NOOP |
空操作,相当于ping。 |
是 |
0x0b |
VERSION |
查询服务版本信息 |
是 |
0x0c |
GETK |
查询数据并返回key |
是 |
0x0d |
GETKQ |
查询数据并返回key,在出现错误时不返回任何信息。 |
是 |
0x0e |
APPEND |
向指定key的value末尾追加数据 |
是 |
0x0f |
PREPEND |
向指定key的value头部增加数据 |
是 |
0x10 |
STAT |
查询缓存实例的统计信息
说明:
当前只支持查询基础统计信息,不支持可选参数操作命令。 |
是 |
0x11 |
SETQ |
设置数据,主要包括新增或者修改数据。 在成功时不返回任何信息。 |
是 |
0x12 |
ADDQ |
新增数据,在成功时不返回任何信息。 |
是 |
0x13 |
REPLACEQ |
更新数据,在成功时不返回任何信息。 |
是 |
0x14 |
DELETEQ |
删除数据,在成功时不返回任何信息。 |
是 |
0x15 |
INCREMENTQ |
算数增,在成功时不返回任何信息 |
是 |
0x16 |
DECREMENTQ |
算数减,在成功时不返回任何信息 |
是 |
0x17 |
QUITQ |
断开连接 |
是 |
0x18 |
FLUSHQ |
清空数据并不返回任何信息
说明:
若提供delay参数,则delay取值必须为0。 |
是 |
0x19 |
APPENDQ |
向指定key的value末尾追加数据,在成功时不返回任何信息 |
是 |
0x1a |
PREPENDQ |
向指定key的value头部增加数据,在成功时不返回任何信息 |
是 |
0x1c |
TOUCH |
修改数据过期时间 |
是 |
0x1d |
GAT |
查询数据同时修改过期时间 |
是 |
0x1e |
GATQ |
查询数据同时修改过期时间,在操作失败时不返回任何信息。 |
是 |
0x23 |
GATK |
查询数据并返回key,同时修改过期时间。 |
是 |
0x24 |
GATKQ |
查询数据并返回key,同时修改过期时间,在操作失败时不返回任何信息。 |
是 |
0x20 |
SASL_LIST_MECHS |
获取服务端支持的SASL认证机制 |
是 |
0x21 |
SASL_AUTH |
SASL认证 |
是 |
0x22 |
SASL_STEP |
SASL复杂认证后续步骤 |
是 |