Memcached用法--参数和命令详解

1. memcached 参数说明:

# memcached -h

1.1 memcached 的参数

常用参数

-p <num> 监听的TCP端口号,默认是11211;(port)
-l <addr> 监听的主机地址,默认是INADDR_ANY,即所有地址,<addr>可以是host:port的形式,如果没有指定port,则使用-p或者-U的值;可以指定多个地址,以逗号分隔或者多次使用-l参数;尽量不要使用默认值,有安全隐患。(listen)
-d 以守护进程运行 (daemon)
-u <username> 指定进程的所有者(只有以root用户执行时才可以使用该参数)(username)
-m <num> 用于存储数据的最大内存,单位是MB,默认是64MB;(memory)
-c <num> 最大并发连接数,默认是1024;
-vv 显示更详细的信息(还显示客户端的命令和响应)
-vvv 显示最详细的信息(还显示内部的状态转变)
-h 显示帮助信息
-P <file> 将PID保存到<file>中,仅和-d参数一起使用;
-f <factor> chunk的增幅因子,默认是1.25,不同的slab class,slab page大小相同,但是chunk大小不等,chunk的大小根据这个增幅因子增长;(factor)
-n <bytes> 为key+value+flags分配的最小内存,单位bytes,默认是48;chunk数据结构本身要占据48字节,所以实际大小是n+48;
-t <num> 使用多少个线程,默认是4;(thread)
-I 设置slab page的大小,即设置可以保存的item的最大值,默认1MB,最小是1K,最大值128M;

其它参数

-U <num> 监听的UDP端口号,默认是11211,0表示关闭UDP监听;(UDP)
-s <file> 要监听的UNIX socket路径(禁用网络支持)(socket)
-a <mask> UNIX socket的访问掩码(access mask),八进制表示,默认是0700. (mask)
-r 文件数量的最大值 (rlimit)
-M 内存耗尽时返回错误,而不是通过LRU淘汰内容;
-k 锁定所有页内存;允许被锁定的内存是有限制的,超过限制可能会失败。
-v 显示启动信息(错误和警告信息)(verbose)
-i 显示memcached和libevent的licence信息
-L 一次申请大的内存页(如果可以);增大内存页的大小,可以提高性能;
-D <char> 指定key前缀与ID的分隔符,用于stats信息显示,默认是冒号:,如果使用了该参数,则stats收集自动启用了,否则,需要发送命令“stats detail on”命令来启动stats的收集。
-R 每一个事件(event)的最大请求数,限制最大请求数可以防止线程饥饿,默认是20;
-C 禁用CAS;
-b 设置backlog队列限制,默认1024;
-B 指定绑定协议,ascii,binary或者auto,其中auto是默认值;

1.2 repcached的参数:

-x <ip_addr> peer主机的主机名或者ip地址;
-X peer主机的TCP端口,即主从同步端口,共同的监听端口

1.3 常用的参数组合

# memcached -d -m -p 11212 -u nobody -l 127.0.0.1 -x 127.0.0.1 -X 11222 -P /tmp/localhost_slave.pid -vv

2. 基本命令与操作

2.1 存储的命令

主要有:set,add,replace,append,prepend,cas;格式为:

command key flag expiration_time bytes
value

key表示键,flag表示key/value的额外信息,expiration_time表示过期时间,单位为秒,0表示永不过期,bytes表示值所占的字节数,必须完全匹配,value表示key对应的值,总是出现在第二行。

set命令表示存储一个key/value对,如果该key已存在,则更新对应的value值;如果成功,返回STORED。

set file_path 0 0 5
/opt/
<29 rep file_path 0 0 5 12
REP>29 STORED
STORED

add命令也表示增加key/value,如果key/value已存在,add操作失败;保存成功返回STORED,失败返回NOT_STORED。

add file_path 0 60 5
/opt/
NOT_STORED
add file_suffix 0 0 2
js
<29 rep file_suffix 0 0 2 16
REP>29 STORED
STORED

replace命令表示更新key对应的value值,如果key/value不存在,replace操作失败;成功返回STORED,失败返回NOT_STORED;

replace first 0 0 7
tianjin
STORED
replace second 0 0 8
shanghai
NOT_STORED

append表示在key对应的value值后追加数据,key必须已存在,否则操作失败;成功返回STORED,失败返回NOT_STORED;

append second 0 0 8
shanghai
NOT_STORED
append first 0 0 3
go
STORED

prepend在key对应的value值的前面追加数据,key必须已存在,否则操作失败;成功返回STORED,失败返回NOT_STORED;

prepend second 0 0 2
hi
NOT_STORED
prepend first 0 0 2
hi
STORED
get first
VALUE first 0 15
hitianjin go go
END

cas (check and set):先比较后存储,即原子更新,原理类似于乐观所。每次请求存储某个数据时附带一个cas值,memcached比对这个cas值与当前存储数据的cas值是否相等,如果相等,则更新数据,否则操作失败;当前存储的cas值通过gets命令获取。成功返回STORED,失败返回EXISTS。

gets first
VALUE first 0 7 12 // 12表示cas id,可以理解为版本号
chengdu
END
cas first 0 0 8 10 // 10 != 12,cas失败
shanghai
EXISTS
cas first 0 0 8 12 // 12表示gets后没有修改key的值,因此可以set
shanghai
STORED

2.2 读取的命令

get根据key获取value值;可以获取多个key的值;get key | get key1 key2

get first
VALUE first 0 8
shanghai
END get first fine
VALUE first 0 8
shanghai
VALUE fine 0 5
yes!!
END

gets是与cas一起使用的命令,gets会额外返回一个cas值,可以理解为版本;如果最后一次gets后,该cas值改变了,则cas设置的值不会存储;gets key | gets key1 key2

gets first
VALUE first 0 8 13
shanghai
END
set first 0 0 7
chengdu
STORED
cas first 0 0 7 13 // 因为gets后set了,所以cas id改变了,cas失败
chengdu
EXISTS

delete命令删除key/value对,一次只能删除一个key/value对;如果要删除的key不存在,操作失败: delete key

delete first second
CLIENT_ERROR bad command line format. Usage: delete <key> [noreply]
delete first
DELETED

incr/decr: 如果key的value值表示的是一个64位整数,可以通过incr和decr命令进行数值的增减: incr/decr key num

set id 0 120 2
10
STORED
incr id 10
20
decr id 5
15

2.3 统计的命令

stats显示进程及当前状态等信息。

stats
STAT pid 1224 // 进程id
STAT uptime 30385 // 系统运行的事件,单位:秒
STAT time 1392199633 // 系统当前事件,Unix时间戳表示的时间:2/12/2014 6:25:40 PM
STAT version 1.4.13 // memcached版本
STAT libevent 2.0.21-stable // libevent版本
STAT pointer_size 64 // 操作系统字大小(64位)
STAT rusage_user 1.892712 // 进程累计用户时间
STAT rusage_system 0.996848 // 进程累计系统时间
STAT curr_connections 8 // 当前打开的连接数
STAT total_connections 9 // 曾打开的连接总数
STAT connection_structures 9 // 服务器分配的连接结构数
STAT reserved_fds 20
STAT cmd_get 29 // 执行get命令的总数
STAT cmd_set 29 // 执行set命令的总数
STAT cmd_flush 2 // 执行flush_all命令的总数
STAT cmd_touch 0
STAT get_hits 14
STAT get_misses 15
STAT delete_misses 3
STAT delete_hits 3
STAT incr_misses 0
STAT incr_hits 4
STAT decr_misses 0
STAT decr_hits 2
STAT cas_misses 1
STAT cas_hits 2
STAT cas_badval 2
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 1503
STAT bytes_written 4125
STAT limit_maxbytes 134217728
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4 // 线程数
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT replication MASTER
STAT repcached_version 2.3.1
STAT repcached_qi_free 8191
STAT bytes 217 // 存储的item字节数
STAT curr_items 3 // 当前item数量
STAT total_items 25 // item的总数
STAT evictions 0 // 为获取空间删除的item数量
STAT reclaimed 2
END

stats items 显示items的相关信息

stats items
STAT items:1:number 3
STAT items:1:age 1552
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 2
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
END

stats slabs 显示slab的相关信息

stats slabs
STAT 1:chunk_size 96
STAT 1:chunks_per_page 10922
STAT 1:total_pages 1
STAT 1:total_chunks 10922
STAT 1:used_chunks 3
STAT 1:free_chunks 0
STAT 1:free_chunks_end 10919
STAT 1:mem_requested 217
STAT 1:get_hits 14
STAT 1:cmd_set 29
STAT 1:delete_hits 3
STAT 1:incr_hits 4
STAT 1:decr_hits 2
STAT 1:cas_hits 2
STAT 1:cas_badval 2
STAT 1:touch_hits 0
STAT active_slabs 1
STAT total_malloced 1048512
END

stats sizes

stats sizes
STAT 96 3
END

stats cachedump 显示slab中items的信息(该命令在将来可能不再支持):stats cachedump [slab id] [number of items, 0 for all items]

set city 0 0 7
tianjin
STORED
stats cachedump 1 0
ITEM city [7 b; 1392169248 s]
END
get city
VALUE city 0 7
tianjin
END

flush_all 使cache中的所有items都过期,server不会停止,也不会刷新或者释放内存。

flush_all
OK
get first
END

参考

(转)Memcached用法--参数和命令详解的更多相关文章

  1. Memcached中的存取命令详解

    本文和大家分享的主要是Memcached中常用的一些存取命令相关用法,一起来看看吧,希望对大家学习Memcached有所帮互助. 存储命令 set:不管key存在与否,强制进行set操作: add:必 ...

  2. [转] - JAR文件包及jar命令详解 ( MANIFEST.MF的用法 )

    常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像. chm 文档一样双击运行了:而另一种是使用 JET 来进 ...

  3. (转)Linux内核参数设置sysctl命令详解

    Linux内核参数设置sysctl命令详解 原文:https://www.zhukun.net/archives/8064 sysctl是一个允许您改变正在运行中的Linux系统的接口. 它包含一些 ...

  4. linux netcat 命令详解

    功能说明:强大的网络工具语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p< ...

  5. linux yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  6. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  7. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  8. DOS命令详解

    DOS命令详解 命令 \? 可以进入命令帮助 1.md命令创建目录. MKDIR [drive:]pathMD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MKD ...

  9. Linux命令详解之—tail命令

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

随机推荐

  1. iframe加载的文档高度

    var clientHeight = $("#iframe").contents().find("body").height();

  2. FileSaver.js导出json文件和文本

    最近刚刚写了个json数据导出生成Excel文件的,顺便总结下利用FileSaver.js导出其他文件的,这里要注意的一个点就是,当导出的是json文件或是txt文件时,导出的内容要是字符串,特别当时 ...

  3. 【C#】记录程序耗时方法

    最近写了一个读txt题库然后导入数据库的控制台应用,查看存入数据库耗时 在C#中使用 Stopwatch  命名空间: System.Diagnostics: 使用方法:   System.Diagn ...

  4. Spring中的事务控制

    Spring中事务控制的API介绍 PlatformTransactionManager 此接口是spring的事务管理器,它里面提供了我们常用的操作事务的方法 我们在开发中都是使用它的实现类: 真正 ...

  5. 洛谷 P3586 [POI2015]LOG

    P3586 [POI2015]LOG 题目描述 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这个序列上,每次选出c个正数,并将它 ...

  6. Frameset框架,在同一个浏览器窗口中显示不止一个页面

    总结一下.通过使用Frameset框架,可以在同一个浏览器窗口中显示不止一个页面. 先举个例子: 1 <frameset rows="100,*" cols="*& ...

  7. CI框架源码学习笔记7——Utf8.php

    愉快的清明节假期结束了,继续回到CI框架学习.这一节我们来看看Utf8.php文件,它主要是用来做utf8编码,废话不多说,上代码. class CI_Utf8 { /** * Class const ...

  8. P3356 火星探险问题

    \(\color{#0066ff}{题目描述}\) 火星探险队的登陆舱将在火星表面着陆,登陆舱内有多部障碍物探测车.登陆舱着陆后,探测车将离开登陆舱向先期到达的传送器方向移动.探测车在移动中还必须采集 ...

  9. js按回车事件提交

    $(document).keyup(function (event) { if (event.keyCode == "13") { document.getElementById( ...

  10. 传球游戏 dp

    题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:nnn个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每 ...