memcache做为一款优秀的进程外缓存,经常被运用于高并发系统架构中。这里主要谈谈怎么经过telnet工具,查看memcache运行情况并对其key进行管理维护。假设memcache安装目录:/usr/local/memcached缓存
一、启动memcache服务器
[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,对其进行简单操做管理。tcp
二、telnet链接memcachememcached
[root@localhost ~]# telnet 192.168.119.70 12000
Trying 192.168.119.70...
Connected to 192.168.119.70 (192.168.119.70).
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)、添加缓存线程
add id 1 0 4 1234 STORED
若是key已经存在,则会添加失败。
b)、修改缓存
replace id 1 0 4 3456 STORED
key存在时,成功;不存在时,失败。
c)、设置缓存
set id 1 0 4 2345 STORED
key不存在时,添加【add】;已存在时,替换【replace】。
注意:字节数必须和你要存储的数据保持一致,否则回报 CLIENT_ERROR bad data chunk 错误
Ⅱ、读取
命令格式:get <key>+\r\n <key>+:表示一个或多个key,多个key时,用空格隔开
a)、读取单个key的缓存
get id VALUE id 1 4 1234 END
b)、读取多个key的缓存
get id name VALUE id 1 4 3456 VALUE name 1 3 jim END
Ⅲ、删除
命令格式:delete \r\n
:要删除的key
删除id
delete id DELETED
Ⅳ、清空全部缓存
命令格式:flush_all
flush_all OK
Ⅴ、查看缓存服务器状态
命令:stats
stats STAT pid 2711 //进程id STAT uptime 2453 //总的运行时间,单位描述 STAT time 1344856333 //当前时间 STAT version 1.4.0 //版本 STAT pointer_size 32 //服务器指针位数,通常32位操做系统是32 STAT rusage_user 0.002999 //进程的累计用户时间 STAT rusage_system 1.277805 //进程的累计系统事件 STAT curr_connections 1 //当前链接数 STAT total_connections 11 //服务器启动后,总链接数 STAT connection_structures 11 //链接结构的数量 STAT cmd_get 17 //总获取次数 STAT cmd_set 1 //总写入次数 STAT cmd_flush 1 //总的的清空次数 STAT get_hits 1 //总的命中次数 STAT get_misses 7 //获取没有命中次数 STAT delete_misses //删除没有命中次数 STAT delete_hits 4 //删除命中次数 STAT incr_misses //递增操做没有命中次数 STAT incr_hits //递增操做命中次数 STAT decr_misses //递减操做没有命中的次数 STAT decr_hits //递减操做命中的次数 STAT cas_misses //cas设置没有命中次数 STAT cas_hits //cas命中次数 STAT cas_badval //cas操做找到key,但版本过时,没有设置成功 STAT bytes_read 455 //总共获取数据量 STAT bytes_written 1175 //总共写入数据量 STAT limit_maxbytes 1048576 //最大容许使用内存,单位字节 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 5 //当前线程数 STAT conn_yields 0 STAT bytes 56 //已用缓存空间 STAT curr_items 1 //当前缓存的keyvalue数 STAT total_items 7 //总共缓存的keyvalue数,包括过时删除的 STAT evictions //经过删除keyvalue,释放内存次数 END
Ⅵ、打印版本
命令:version
version VERSION 1.4.0 Ⅶ、打印内存信息
命令:stats slabs
stats slabs STAT 1:chunk_size 80 STAT 1:chunks_per_page 13107 STAT 1:total_pages 1 STAT 1:total_chunks 13107 STAT 1:used_chunks 1 STAT 1:free_chunks 1 STAT 1:free_chunks_end 13105 STAT 1:get_hits 10 STAT 1:cmd_set 10 STAT 1:delete_hits 4 STAT 1:incr_hits 0 STAT 1:decr_hits 0 STAT 1:cas_hits 0 STAT 1:cas_badval 0 STAT active_slabs 1 STAT total_malloced 1048560 END
三、退出telnet