输出说明:STORED:保存成功后出输出。
NOT_STORED:执行替换失败后输出。
(6).type "get " will get data
从数据库中获取数据。get空格key 可以获取指定key的数据。多个key可以用空格隔开,如果key不存在,则返回空。
get命令语法格式:
get <key>*\r\n
参数说明:
①<key>*:一个或者多个key值(多个key以空格分开)。
实例:
(7).type "gets " will get data and version
从数据库中获取数据和版本信息。可以看到,gets命令比普通的get命令多返回了一个数字。这个数字可以检查数据是否发生改变。当key对应的数据改变时,这个多返回的数字也会改变。这个数字类似于svn中的版本号,如果key不存在,则返回空。
gets命令语法格式:
gets <key>*\r\n
参数说明:
①<key>*:一个或者多个key值(多个key以空格分开)。
实例:
(8).type "getg" will get group datas,must have goup number.
从当前数据表中获取某些组/全部组的全部value数据,”getg”后面如果不带参数,表示获取全部数据,执行全表扫描和输出全部数据。如果存在<group_number>,表示只获取<group_number>组的全部数据。
getg命令语法格式:
getg <group_number>*\r\n
参数说明:
①<group_number>*:可选参数,表示一个组或多个组的序列号(多个<group_number>以空格分开),序列号范围是0~255。
实例:
(9).type "getl" will get datas which like X%.
从当前数据表中获取键值为字符串<x>开头的多条数据,例如:若两个数据的键值key,一个为aaa,一个为abc,则可以通过命令”getl a”,同时获取这两个键值都为a开头的数据的具体信息,即a%。若有三个数据,键值分别为bbb,bbc,bbd,可以通过命令“getl bb”同时获取这三个键值都为bb开头的数据的具体信息,即bb%。
getl命令语法格式:
getl <x>\r\n
参数说明:
①<x>:表示任意字符串.
实例:
(10).type "gat" will get data and reset expiration time.
将读取数据,并且重置过期时间,即从当前数据表中获取key对应的value值, 并且重置过期时间。
gat命令语法格式:
gat <key> <exptime>\r\n
参数说明:
①<key>:数据的键值。
②<exptime>:过期时间(单位:秒),0表示存储数据永不过期;当此变量小于等于2592000(=30天*24小时*60分*60秒)时,表示从当前时间开始<exptime>秒后,数据过期,并且会自动删除自身并释放占用内存空间。 当数据过期后,服务器可以保证用户得不到该数据。当此变量大于2592000(=30天*24小时*60分*60秒)时,服务器认为此变量是一个unix时间戳,表示从1970年1月1日00:00:00开始计时格林威治时间。工作机制与set/add命令类似。
实例:
(11).type "touch" will reset expiration time of the key.
将重置key对应的过期时间,即用于更新元素key的失效时间。
touch命令语法格式:
touch <key> <exptime>\r\n
参数说明:
①<key>:数据的键值。
②<exptime>:过期时间(单位:秒),0表示存储数据永不过期;当此变量小于等于2592000(=30天*24小时*60分*60秒)时,表示从当前时间开始<exptime>秒后,数据过期,并且会自动删除自身并释放占用内存空间。 当数据过期后,服务器可以保证用户得不到该数据。当此变量大于2592000(=30天*24小时*60分*60秒)时,服务器认为此变量是一个unix时间戳,表示从1970年1月1日00:00:00开始计时格林威治时间。工作机制与set/add命令类似。
实例:
输出说明:TOUCHED:成功
NOT_FOUND:haisql_memcache服务上不存在该键值。
(12).type "cas " will check and set data
check and set检查数据版本信息,并且在版本号一致的情况下设置数据。cas命令用于执行一个"检查并设置"的操作它仅在当前客户端最后一次取值后,该key 对应的值没有被其他客户端修改的情况下, 才能够将值写入。检查是通过version参数进行的, 这个参数是haisql_memcache指定给已经存在的元素的一个唯一的值,即版本号。
cas命令语法格式:
cas <key> <flags> <exptime> <bytes> <version>\r\n<data block>
\r\n
参数说明:
①<key>:数据的键值。
②<flags>:一个32位的无符号的整数(以十进制的方式表示)。该标志将和需要存储的数据一起存储,并在客户端get数据时返回。客户可以将此标志用做特殊用途,此标志对服务器来说是透明的。
③<exptime>:过期时间(单位:秒),0表示存储数据永不过期;当此变量小于等于2592000(=30天*24小时*60分*60秒)时,表示从当前时间开始<exptime>秒后,数据过期,并且会自动删除自身并释放占用内存空间。 当数据过期后,服务器可以保证用户得不到该数据。当此变量大于2592000(=30天*24小时*60分*60秒)时,服务器认为此变量是一个unix时间戳,表示从1970年1月1日00:00:00开始计时格林威治时间。
④<bytes>:字节数(不包含最后的”\r\n”),当用户希望存储空数据时,可以为0。
⑤<version>:数据的版本号,初始版本号是一个随机值,每次数据更新后版本号自动加一。
⑥<data block>:数据块,即希望检查并设置的数据内容。
实例:
输出说明:执行正确返回增加后的数值,其他返回错误
NOT_FOUND:key不存在。
CLIENT_ERROR:自增值不是对象。
ERROR:其他错误,如语法错误等。
(16)type”decr”will reduce the numeric value of key (key) by auto decrement.
对已存在的key(键)的数字值进行自减<increment_value>的操作,该命令操作的数据必须是十进制的32位无符号的整数,如果key不存在,则返回NOT_FOUND,如果键的值不是数字,则返回CLIENT_ERROR,其他错误则会返回ERROR。
decr命令语法格式:
decr <key> <increment_value>\r\n
参数说明:
①<key>:数据的键值,用于查找缓存值。
②<increment_value>:减少的数值。
实例:
输出说明:NOT_FOUND:key不存在。
CLIENT_ERROR:自增值不是对象。
ERROR:其他错误,如语法错误等。
(17).type "delete " will delete data
删除数据库中的一条数据。
delete命令语法格式:
delete <key>\r\n
参数说明:
①:<key>:数据的键值。
实例:
输出说明:DELETED:删除成功。
NOT_FOUND:该键在haisql_memcache上不存在。
ERROR:语法错误或删除失败。
(18).type "erase_all " will erase all data
在指定的时间后删除全部数据,该命令提供了一个可选参数,当不指定<second>参数时,表示立即删除所有的数据信息。
erase_all命令语法格式:
erase_all <second>\r\n
参数说明:
①<second>:时间(单位:秒)。
实例:
(19).type "erase_ahead" will ahead X seconds erase expired data
提前清除<second>秒后就要过期的数据。对大于<second>秒后过期的数据无任何操作,即设置一个<second>,单位为“秒”,若<second>设为10秒,表示清除还差0~10秒就要过期的数据,即提前清除10秒后就要过期的数据。
erase_ahead命令语法格式:
erase_ahead <second>\r\n
参数说明:
①<second>:时间(单位:秒)
实例:
(20).type "stat " will show status
显示统计数据库所有的状态信息。
stat命令语法格式:
stat\r\n
实例:
实例内部状态详细解释:
stat
STAT pid 5474 进程id号
STAT uptime 4492.818483 服务器运行秒数
STAT version 1.00 (Ubuntu) 服务器版本
STAT boost version 105800 boost库版本号
STAT pointer_size 64 操作系统字大小(这台服务器是64位的)
STAT rusage_user 0.196000 进程累计用户时间
STAT rusage_system 0.160000 进程累计系统时间
STAT rusage_swap 0 进程累计交换时间
STAT rusage_maxrss 29644 进程最大交换超时时间
STAT current_connections 1 当前打开连接数
STAT ask_connections 4 服务器发送请求的连接数
STAT connections_refuse 0 服务器拒绝的连接数
STAT connections_complete 4 服务器完成的连接数
STAT connection_idle_timeout 3 服务器因空闲超时而拆除的连接数
STAT connection_packets_receive 2 服务器接收到的数据包的个数
STAT connection_bytes_receive 14 服务器接收到的字节的个数
STAT connection_packets_send 61 服务器发送的数据包的个数
STAT connection_bytes_send 2820 服务器发送的字节的个数
STAT boost_asio_io_service 4 服务器使用boost::asio::io_service的数量
STAT thread 4 线程数量
STAT data_max_count 10000000 当前数据表限制的最大记录数
STAT data_current_count 0 当前保存的数据信息的计数
STAT data_current_capacity 4096 当前数据的预留容量(按数据个数)
STAT data_total_inserted 0 插入数据的总数
STAT data_rehash_count 0 数据重新hash计算的次数(发生于数据扩容或者收缩时)
STAT cmd_get ok 0 执行get命令成功的计数
STAT cmd_get fail 0 执行get命令失败的计数
STAT cmd_gets ok 0 执行gets命令成功的计数
STAT cmd_gets fail 0 执行gets命令失败的计数
STAT cmd_getg ok 0 执行getg命令成功的计数
STAT cmd_getg fail 0 执行getg命令失败的计数
STAT cmd_getl ok 256 执行getl命令成功的计数
STAT cmd_getl fail 0 执行getl命令失败的计数
STAT cmd_gat ok 1 执行gat命令成功的计数
STAT cmd_gat fail 1 执行gat命令失败的计数
STAT cmd_touch ok 1 执行touch命令成功的计数
STAT cmd_touch fail 1 执行touch命令失败的计数
STAT cmd_set ok 0 执行set命令成功的计数
STAT cmd_set fail 0 执行set命令失败的计数
STAT cmd_add ok 0 执行add命令成功的计数
STAT cmd_add fail 0 执行add命令失败的计数
STAT cmd_delete ok 0 执行delete命令成功的计数
STAT cmd_delete fail 0 执行delete命令失败的计数
STAT cmd_replace ok 0 执行replace命令成功的计数
STAT cmd_replace fail 0 执行replace命令失败的计数
STAT cmd_cas ok 0 执行cas命令成功的计数
STAT cmd_cas fail 0 执行cas命令失败的计数
STAT cmd_append ok 0 执行append命令成功的计数
STAT cmd_append fail 0 执行append命令失败的计数
STAT cmd_prepend ok 0 执行prepend命令成功的计数
STAT cmd_prepend fail 0 执行prepend命令失败的计数
STAT cmd_incr ok 0 执行incr命令成功的计数
STAT cmd_incr fail 0 执行incr命令失败的计数
STAT cmd_decr ok 0 执行decr命令成功的计数
STAT cmd_decr fail 0 执行decr命令失败的计数
STAT cmd_erase_all 0 执行erase_all命令的总数
STAT cmd_erase_ahead 0 执行erase_ahead命令的总数
END
(21).type "stat reset" will reset many count
重置状态信息里的所有计数,使其回到最初状态的计数。
stat reset命令语法格式:
stat reset\r\n
实例:
(22).type "stat size" will only show size status
显示所有状态信息总计数。
stat size命令语法格式:
stat size\r\n
实例:
示例内部信息详细解释:
STAT data_max_count 10000000 保存的数据信息的最大条数
STAT data_current_count 3 当前保存的数据信息的计数
STAT data_current_capacity 259 当前数据的容量
STAT data_total_inserted 3 插入数据的总数
STAT data_rehash_count 3 数据重新hash计算的次数
(23).type "stat group" will show group status, can apply goup number.
显示当前数据表中<number>的记录数,当不指定<number>时,默认显示数据表内部所有组的记录数。数据表的组数默认为CPU数量的两倍,当数据存储后,会保存在这些组中的其中一组,用户可以通过这条命令,查看当前每个组中的当前数据计数,从而得知数据保存在第几组中。
stat group命令语法格式:
stat group <number>\r\n
参数说明:
①<number>:组的序列号。
实例: