Memcached教程(2)

来源:互联网 发布:单片机开发板工作原理 编辑:程序博客网 时间:2024/06/14 07:27

Memcached命令入门

基础参数说明:

参数 说明 key 存储结构 key-value 中的key,作为标示查找缓存的值。 flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。 exptime 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远) bytes 在缓存中存储的字节数(必须设置为存储值的长度,不然无法结束命令) noreply(可选) 该参数告知服务器不需要返回数据 value 存储的值(始终位于第二行)(可直接理解为key-value结构中的value) unique_cas_token 通过 gets 命令获取的一个唯一的64位值。

存储命令

add 命令

add 命令用于将value储在指定的key中。如果key已经存在,不会更新之前的value,并且响应 NOT_STORED。

语法格式如下:

add key flags exptime bytes [noreply]value

实例:

set mykey 0 900 9memcachedSTORED

可以用get命令获取存入的值:

get mykey

会显示:

VALUE mykey 0 9memcachedEND

代表存入成功。

STORED是保存成功后Memcached返回的标识,如果失败则返回ERROR或者具体的错误信息。

set 命令

set 命令用于将value存储在指定的key中。如果key已经存在,将更新该key所对应的value,实现更新操作。

语法格式如下:

set key flags exptime bytes [noreply]value

实例:

set mykey 0 900 9memcachedSTORED

replace 命令

replace 命令用于替换已经存在的key所对应的value。如果key不存在,则会替换失败,并且响应 NOT_STORED。

语法格式如下:

replace key flags exptime bytes [noreply]value

实例:

replace mykey 0 900 10memcached1STORED

append 命令

append 命令用于向已经存在的key的value后面追加数据。

语法格式如下:

append key flags exptime bytes [noreply]value

实例:

replace mykey 0 900 3234STORED

可以用get命令获取修改的值:

get mykeyVALUE mykey 0 13memcached1234END

prepend 命令

prepend 命令用于向已经存在的key的value前面追加数据。

语法格式如下:

prepend key flags exptime bytes [noreply]value

实例:

replace mykey 0 900 2abSTORED

可以用get命令获取修改的值:

get mykeyVALUE mykey 0 15abmemcached1234END

CAS 命令

CAS(Check-And-Set 或 Compare-And-Swap) 命令用于执行一个”检查并设置”的操作
它仅在当前客户端最后一次取值后,该key 对应的值没有被其他客户端修改的情况下, 才能够将值写入。
检查是通过cas_token参数进行的, 这个参数是Memcach指定给已经存在的元素的一个唯一的64位值。

语法格式如下:

cas key flags exptime bytes unique_cas_token [noreply]value

要在 Memcached 上使用 CAS 命令,你需要从 Memcached 服务商通过 gets 命令获取令牌(token)。
gets 命令的功能类似于基本的 get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。

实例步骤如下:

  • 如果没有设置唯一令牌,则 CAS 命令执行错误。
  • 如果键 key 不存在,执行失败。
  • 添加键值对。
  • 通过 gets 命令获取唯一令牌。
  • 使用 cas 命令更新数据
  • 使用 get 命令查看数据是否更新

实例:

cas mykey 0 900 3 2abcSTORED

可能出现的输出信息:

信息 说明 STORED 保存成功。 ERROR 保存失败或语法错误。 EXISTS 在最后一次取值后另外一个用户也在更新该数据。 NOT_FOUND Memcached 服务上不存在该键值。

查找命令

get 命令

get 命令获取存储在 key中的 value,如果 key 不存在,则返回空。

语法格式如下:

get key 

多个key的情况使用空格隔开:

get key1 key2 key3

实例:

get mykey

会显示:

VALUE mykey 0 9memcachedEND

如果key不存在输出:

END

gets 命令

gets 命令获取带有CAS令牌存的value ,如果 key 不存在,则返回空。

语法格式如下:

gets key 

多个key的情况使用空格隔开:

gets key1 key2 key3

实例:

get mykey

会显示:

VALUE mykey 0 9 2memcachedEND

如果key不存在输出:

END

delete 命令

delete 命令用于删除已存在的key和对应的value。

语法格式如下:

delete key [noreply]

多个key的情况使用空格隔开:

delete key1 key2 key3

实例:

delete runoob

会显示:

DELETED

可能出现的输出信息:

信息 说明 DELETED 删除成功。 ERROR 删除失败或语法错误。 NOT_FOUND Memcached 服务上不存在该键值。

incr 命令

incr 命令用于对已存在的key的value进行自增操作。incr 命令操作的value必须是十进制的32位无符号整数。如果 key 不存在返回 NOT_FOUND,如果键的值不为数字,则返回 CLIENT_ERROR,其他错误返回 ERROR。

语法格式如下:

incr key increment_value

increment_value: 增加的数值。

实例:

set number 0 900 210STOREDget numberVALUE number 0 210ENDincr number 515get numberVALUE number 0 215END

decr 命令

decr 命令用于对已存在的key的value进行自减操作。decr 命令操作的value必须是十进制的32位无符号整数。如果 key 不存在返回 NOT_FOUND,如果键的值不为数字,则返回 CLIENT_ERROR,其他错误返回 ERROR。

语法格式如下:

decr key decrement_value

decrement_value: 减少的数值。

实例:

get numberVALUE visitors 0 215ENDdecr number 510get numberVALUE number 0 110END

统计命令

stats 命令

stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。

语法格式如下:

stats

实例:

statsSTAT pid 4348STAT uptime 54705STAT time 1470788200STAT version 1.4.25 UbuntuSTAT libevent 2.0.21-stableSTAT pointer_size 64STAT rusage_user 2.240000STAT rusage_system 2.172000STAT curr_connections 5STAT total_connections 7STAT connection_structures 6STAT reserved_fds 20STAT cmd_get 10STAT cmd_set 19STAT cmd_flush 0STAT cmd_touch 0STAT get_hits 7STAT get_misses 3STAT delete_misses 0STAT delete_hits 1STAT incr_misses 0STAT incr_hits 0STAT decr_misses 0STAT decr_hits 0STAT cas_misses 0STAT cas_hits 0STAT cas_badval 0STAT touch_hits 0STAT touch_misses 0STAT auth_cmds 0STAT auth_errors 0STAT bytes_read 1144STAT bytes_written 2039STAT limit_maxbytes 67108864STAT accepting_conns 1STAT listen_disabled_num 0STAT time_in_listen_disabled_us 0STAT threads 4STAT conn_yields 0STAT hash_power_level 16STAT hash_bytes 524288STAT hash_is_expanding 0STAT malloc_fails 0STAT bytes 78STAT curr_items 1STAT total_items 11STAT expired_unfetched 2STAT evicted_unfetched 0STAT evictions 0STAT reclaimed 4STAT crawler_reclaimed 0STAT crawler_items_checked 0STAT lrutail_reflocked 0END

下边详细解释每个状态项:

状态项 说明 pid memcache服务器进程ID uptime 服务器已运行秒数 time 服务器当前Unix时间戳 version memcache版本 pointer_size 操作系统指针大小 rusage_user 进程累计用户时间 rusage_system 进程累计系统时间 curr_connections 当前连接数量 total_connections Memcached运行以来连接总数 connection_structures Memcached分配的连接结构数量 cmd_get get命令请求次数 cmd_set set命令请求次数 cmd_flush flush命令请求次数 get_hits get命令命中次数 get_misses get命令未命中次数 delete_misses delete命令未命中次数 delete_hits delete命令命中次数 incr_misses incr命令未命中次数 incr_hits incr命令命中次数 decr_misses decr命令未命中次数 decr_hits decr命令命中次数 cas_misses cas命令未命中次数 cas_hits cas命令命中次数 cas_badval 使用擦拭次数 auth_cmds 认证命令处理的次数 auth_errors 认证失败数目 bytes_read 读取总字节数 bytes_written 发送总字节数 limit_maxbytes 分配的内存总大小(字节) accepting_conns 服务器是否达到过最大连接(0/1) listen_disabled_num 失效的监听数 threads 当前线程数 conn_yields 连接操作主动放弃数目 bytes 当前存储占用的字节数 curr_items 当前存储的数据总数 total_items 启动以来存储的数据总数 evictions LRU释放的对象数目 reclaimed 已过期的数据条目来存储新数据的数目

stats items 命令

stats items 命令用于显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)。

语法格式如下:

stats items

实例:

stats itemsSTAT items:1:number 1STAT items:1:age 12512STAT items:1:evicted 0STAT items:1:evicted_nonzero 0STAT items:1:evicted_time 0STAT items:1:outofmemory 0STAT items:1:tailrepairs 0STAT items:1:reclaimed 3STAT items:1:expired_unfetched 1STAT items:1:evicted_unfetched 0STAT items:1:crawler_reclaimed 0STAT items:1:crawler_items_checked 0STAT items:1:lrutail_reflocked 0END

stats slabs 命令

stats slabs 命令用于显示各个slab的信息,包括chunk的大小、数目、使用情况等。

语法格式如下:

stats slabs

实例:

stats slabsSTAT 1:chunk_size 96STAT 1:chunks_per_page 10922STAT 1:total_pages 1STAT 1:total_chunks 10922STAT 1:used_chunks 1STAT 1:free_chunks 10921STAT 1:free_chunks_end 0STAT 1:mem_requested 78STAT 1:get_hits 7STAT 1:cmd_set 15STAT 1:delete_hits 1STAT 1:incr_hits 0STAT 1:decr_hits 0STAT 1:cas_hits 0STAT 1:cas_badval 0STAT 1:touch_hits 0STAT 4:chunk_size 192STAT 4:chunks_per_page 5461STAT 4:total_pages 1STAT 4:total_chunks 5461STAT 4:used_chunks 0STAT 4:free_chunks 5461STAT 4:free_chunks_end 0STAT 4:mem_requested 0STAT 4:get_hits 0STAT 4:cmd_set 4STAT 4:delete_hits 0STAT 4:incr_hits 0STAT 4:decr_hits 0STAT 4:cas_hits 0STAT 4:cas_badval 0STAT 4:touch_hits 0STAT active_slabs 2STAT total_malloced 2097024END

stats sizes 命令

stats sizes 命令用于显示所有item的大小和个数。该信息返回两列,第一列是 item 的大小,第二列是 item 的个数。

语法格式如下:

stats sizes

实例:

stats sizes    STAT 96 1END

flush_all 命令

flush_all 命令用于用于清理缓存中的所有 key=>value 对。该命令提供了一个可选参数 time,用于在制定的时间后执行清理缓存操作。

语法格式如下:

flush_all [time] [noreply]

实例:

flush_allOKget mykeyEND
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 胡须长的太快怎么办 乳房有小结结该怎么办 我一点胸都没有怎么办 狗狗不愿意睡窝怎么办 狗狗喜欢睡地板怎么办 小金毛不吃狗粮怎么办 孕前没有吃叶酸怎么办 严重少精和畸形怎么办 大学混了四年怎么办 和家人相处很累怎么办 40多岁眼睛花怎么办 侧方停车右边宽怎么办 有公主病的老婆怎么办? 圆通快递太慢了怎么办 美台军舰互停怎么办 安装包删除不掉怎么办 艾灸后皮肤极痒怎么办 拔罐如果有水泡怎么办 拔罐拔出水泡来怎么办 拔罐拔出了水泡怎么办 风湿引起的背疼怎么办 拔罐减肥不瘦怎么办 艾灸后脸上长痘怎么办 艾灸烟大怎么办 湿毛巾 月经推迟一个月了还不来怎么办 埋线了喝酒了怎么办 对待孩子脾气暴燥怎么办 买的新鞋子臭脚怎么办 鞋子臭脚怎么办如何除 惠普803墨盒干了怎么办 酷派手机无命令怎么办 华为手机锁机了怎么办 小孩被蜘蛛咬了怎么办 我是一个不爱说话的人怎么办 光动能手表停了怎么办 电波表收不到波怎么办 吃了壮阳药头疼怎么办 吃了伟哥后头痛怎么办 伟哥吃了不管用怎么办 钱站的钱还不起怎么办 面试工资要低了怎么办