Memcached常用命令及使用说明

来源:互联网 发布:linux源码下载 编辑:程序博客网 时间:2024/06/06 03:03

1、添加

(1)、无论如何都存储的set

set

这个set的命令在memcached中的使用频率极高。set命令不但可以简单添加,如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。

可以通过“get 键名”的方式查看添加进去的记录:

set_get

如你所知,我们也可以通过delete命令删除掉,然后重新添加。

delete

(2)、只有数据不存在时进行添加的add

add

(3)、只有数据存在时进行替换的replace

replace

 

2、删除

delete

可以看到,删除已存在的键值和不存在的记录可以返回不同的结果。

 

二、读取命令

1、get

get命令的key可以表示一个或者多个键,键之间以空格隔开

get

2、gets

gets

可以看到,gets命令比普通的get命令多返回了一个数字(上图中为13)。这个数字可以检查数据是否发生改变。当key对应的数据改变时,这个多返回的数字也会改变。

3、cas

cas即checked and set的意思,只有当最后一个参数和gets所获取的参数匹配时才能存储,否则返回“EXISTS”。

cas

 

三、状态命令

1、stats

stats

 

2、stats items

statsitems
执行stats items,可以看到STAT items行,如果memcached存储内容很多,那么这里也会列出很多的STAT items行。

 

3、stats cachedump slab_id limit_num

我们执行stats cachedump 1 0 命令效果如下:

statscachedump

这里slab_id为1,是由2中的stats items返回的结果(STAT items后面的数字)决定的;limit_num看起来好像是返回多少条记录,猜的一点不错, 不过0表示显示出所有记录,而n(n>0)就表示显示n条记录,如果n超过该slab下的所有记录,则结果和0返回的结果一致。

statscachedump1
通过stats items、stats cachedump slab_id limit_num配合get命令可以遍历memcached的记录。

 

4、其他stats命令

如stats slabs,stats sizes,stats reset等等使用也比较常见。

statsother

 

四、其他常见命令

1、append

append

在现有的缓存数据添加缓存数据,如现有缓存的key不存在服务器响应为NOT_STORED。

 

2、prepend

和append非常类似,但它的作用是在现有的缓存数据添加缓存数据。

prepend

 

3、flush_all

flush_all

该命令有一个可选的数字参数。它总是执行成功,服务器会发送 “OK\r\n” 回应。它的效果是使已经存在的项目立即失效(缺省),或在指定的时间后。此后执行取回命令,将不会有任何内容返回(除非重新存储同样的键名)。 flush_all 实际上没有立即释放项目所占用的内存,而是在随后陆续有新的项目被储存时执行(这是由memcached的懒惰检测和删除机制决定的)。

flush_all 效果是它导致所有更新时间早于 flush_all 所设定时间的项目,在被执行取回命令时命令被忽略。

4、其他命令

memcached还有很多命令,比如对于存储为数字型的可以通过incr/decr命令进行增减操作等等,这里只列出开发和运维中经常使用的命令,其他的不再一一举例说明。


memcache作为一款优秀的进程外缓存,常常被运用于高并发系统架构中。这里主要谈谈怎么通过telnet工具,查看memcache运行状况并对其key进行管理维护。假设memcache安装目录:/usr/local/memcached

          
1、启动memcache

[plain] view plaincopy
  1. [root@localhost ~]# /usr/local/memcached/bin/memcached -d -m 512  -u root -l 192.168.119.70 -p 12000 -c 512 -P /usr/local/memcached/memcached.pid  

启动参数详解
 -d:以守护进程方式启动。如果该参数没有指定,当按ctrl+c命令结束,memcache自动关闭
 -m:分配给memcache使用的最大内存数 单位是m,默认是64m
 -u: 指定运行memcache的用户
 -l: 指定监听的ip地址
 -p: 指定监听的tcp端口号,可以通过-u指定udp端口.默认是11211
 -c: 最大并发连接数
 -P: 报错进程id的文件
 memcache 启动之后,我们就可以通过telnet连接memcache,对其进行简单操作管理。

2、telnet连接memcache

[plain] view plaincopy
  1. [root@localhost ~]# telnet 192.168.119.70 12000   
  2. Trying 192.168.119.70...  
  3. Connected to 192.168.119.70 (192.168.119.70).  
  4. Escape character is '^]'.   

 连接成功之后,即可对memcache进行操作管理了,常用的命令有:

Ⅰ、添加修改

        命令格式:<command> <key> <flags> <exptime> <bytes>\r\n<data block>\r\n

       <command>:add, set或 replace

       <key> :缓存的名字

       <flag>:16位无符号整数,和key要存储的数据一起存储,并在程序get缓存时,返回。

      <exptime>:过去时间,0 表示永远不过期,如果非零,表示unix时间或距此秒数

       <bytes>:存储数据的字节数

        \r\n: 表示换行回车

        命令结果:

                STORED :表示成功

                NOT_STORED : 表示失败 

a)、添加缓存

[plain] view plaincopy
  1. add id 1 0 4  
  2. 1234  
  3. STORED  

         如果key已经存在,则会添加失败。

b)、修改缓存

[plain] view plaincopy
  1. replace id 1 0 4  
  2. 3456  
  3. STORED  

     key存在时,成功;不存在时,失败。

c)、设置缓存

[plain] view plaincopy
  1. set id 1 0 4  
  2. 2345  
  3. STORED  

    key不存在时,添加【add】;已存在时,替换【replace】。

 

Ⅱ、读取

       命令格式:get <key>+\r\n

       <key>+:表示一个或多个key,多个key时,用空格隔开

a)、读取单个key的缓存

[plain] view plaincopy
  1. get id  
  2. VALUE id 1 4  
  3. 1234  
  4. END  

 

 b)、读取多个key的缓存

[plain] view plaincopy
  1. get id name  
  2. VALUE id 1 4  
  3. 3456  
  4. VALUE name 1 3  
  5. jim  
  6. END  

 

Ⅲ、删除

命令格式:delete <key> \r\n

<key>:要删除的key

删除id

[plain] view plaincopy
  1. delete id   
  2. DELETED  

 

Ⅳ、清空所有缓存

命令格式:flush_all

[plain] view plaincopy
  1. flush_all  
  2. OK  

 

Ⅴ、查看缓存服务器状态

命令:stats

[plain] view plaincopy
  1. stats  
  2. STAT pid 2711     //进程id  
  3. STAT uptime 2453  //总的运行时间,单位描述  
  4. STAT time 1344856333  //当前时间  
  5. STAT version 1.4.0 //版本  
  6. STAT pointer_size 32    //服务器指针位数,一般32位操作系统是32  
  7. STAT rusage_user 0.002999  //进程的累计用户时间   
  8. STAT rusage_system 1.277805  //进程的累计系统事件  
  9. STAT curr_connections 1  //当前连接数  
  10. STAT total_connections 11  //服务器启动后,总连接数  
  11. STAT connection_structures 11  //连接结构的数量  
  12. STAT cmd_get 17   //总获取次数  
  13. STAT cmd_set 1  //总写入次数  
  14. STAT cmd_flush 1   //总的的清空次数  
  15. STAT get_hits 1  //总的命中次数  
  16. STAT get_misses 7   //获取没有命中次数  
  17. STAT delete_misses //删除没有命中次数  
  18. STAT delete_hits 4   //删除命中次数  
  19. STAT incr_misses //递增操作没有命中次数   
  20. STAT incr_hits //递增操作命中次数  
  21. STAT decr_misses //递减操作没有命中的次数  
  22. STAT decr_hits //递减操作命中的次数  
  23. STAT cas_misses //cas设置没有命中次数  
  24. STAT cas_hits //cas命中次数  
  25. STAT cas_badval //cas操作找到key,但版本过期,没有设置成功  
  26. STAT bytes_read 455    //总共获取数据量  
  27. STAT bytes_written 1175  //总共写入数据量  
  28. STAT limit_maxbytes 1048576  //最大允许使用内存,单位字节  
  29. STAT accepting_conns 1      
  30. STAT listen_disabled_num 0  
  31. STAT threads 5   //当前线程数  
  32. STAT conn_yields 0  
  33. STAT bytes 56      //已用缓存空间  
  34. STAT curr_items 1  //当前缓存的keyvalue数  
  35. STAT total_items 7 //总共缓存的keyvalue数,包括过期删除的  
  36. STAT evictions //通过删除keyvalue,释放内存次数  
  37. END  

Ⅵ、打印版本

命令:version

[plain] view plaincopy
  1. version  
  2. VERSION 1.4.0  

Ⅶ、打印内存信息

命令:stats slabs

[plain] view plaincopy
  1. stats slabs  
  2. STAT 1:chunk_size 80  
  3. STAT 1:chunks_per_page 13107  
  4. STAT 1:total_pages 1  
  5. STAT 1:total_chunks 13107  
  6. STAT 1:used_chunks 1  
  7. STAT 1:free_chunks 1  
  8. STAT 1:free_chunks_end 13105  
  9. STAT 1:get_hits 10  
  10. STAT 1:cmd_set 10  
  11. STAT 1:delete_hits 4  
  12. STAT 1:incr_hits 0  
  13. STAT 1:decr_hits 0  
  14. STAT 1:cas_hits 0  
  15. STAT 1:cas_badval 0  
  16. STAT active_slabs 1  
  17. STAT total_malloced 1048560  
  18. END  

 

3、退出telnet 

[plain] view plaincopy
  1. quit  




















原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 骑摩托车忘带驾驶证和行驶证怎么办 驾驶证逾期未审验怎么办有什么后果 车祸至人腿部骨折沒钱偿还的怎么办 我有c4驾驶证想办c3怎么办 驾驶证和行驶证被交警扣了怎么办 行驶证被交警弄丢了怎么办 没带行驶证让警察发现怎么办 首尔转机换票换乘怎么办过境签证 驾驶证约考帐号与登密码丢失怎么办 考驾照的时候预约密码忘了怎么办 考驾照的预约密码忘了怎么办 摩托车不能挂档不能摘挡了怎么办 身份证丢失了派出所不给挂失怎么办 快递员在中午还送货夏天怎么办啊 驾照一个记分周期扣满12分怎么办 佛山南海车管所怎么办替人消分流程 福州快处中心几流程要怎么办 被对方追尾了对方只有交强险怎么办 摩托车行驶证年检过期一年半怎么办 户口迁到杭州了身份证掉了怎么办 户口已迁至外面要补办结婚证怎么办 汽车年检时间过了1个月怎么办 户口在老家在北京工作怎么办招工 报考驾照时手机号留错了怎么办 合肥驾照换证体检没过怎么办 驾驶证记分周期到了违章未消怎么办 驾照被扣科目一过期没考怎么办 驾驶证暂扣过了换证日期怎么办? 考驾照科目二身份证丢了怎么办 驾照科目一考试身份证丢了怎么办 换驾驶证名下有车辆脱审怎么办 交警把驾驶证和行车证扣了怎么办 连续两天驾照都是扣12分怎么办? 交警开的电动车罚单丢了怎么办 驾驶证b证体检报告拖期怎么办 在中国把美国护照弄丢了怎么办 拿了驾照两年了不敢上高速怎么办 我要移民过香港大陆的驾驶证怎么办 交警开的扣行驶证的单不见了怎么办 行驶证累计记分满12分后怎么办 行车证丢了被交警查到怎么办