通过telnet连接查看memcache服务器
memcache作为一款优秀的进程外缓存,常常被运用于高并发系统架构中。这里主要谈谈怎么通过telnet工具,查看memcache运行状况并对其key进行管理维护。假设memcache安装目录:/usr/local/memcached
1、启动memcache
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,对其进行简单操作管理。
1 2 3 4 | [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 '^]' . |
2、telnet连接memcache
连接成功之后,即可对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)、添加缓存
1 2 3 | add id 1 0 4 1234 STORED |
如果key已经存在,则会添加失败。
b)、修改缓存
1 2 3 | replace id 1 0 4 3456 STORED |
key存在时,成功;不存在时,失败。
c)、设置缓存
1 2 3 | set id 1 0 4 2345 STORED |
key不存在时,添加【add】;已存在时,替换【replace】。
Ⅱ、读取
命令格式:get <key>+\r\n
<key>+:表示一个或多个key,多个key时,用空格隔开
a)、读取单个key的缓存
1 2 3 4 | get id VALUE id 1 4 1234 END |
b)、读取多个key的缓存
1 2 3 4 5 6 | get id name VALUE id 1 4 3456 VALUE name 1 3 jim END |
Ⅲ、删除
命令格式:delete <key> \r\n
<key>:要删除的key
删除id
1 2 | delete id DELETED |
Ⅳ、清空所有缓存
命令格式:flush_all
1 2 | flush_all OK |
Ⅴ、查看缓存服务器状态
命令:stats
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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
1 2 | version VERSION 1.4 . 0 |
Ⅶ、打印内存信息
命令:stats slabs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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 |
3、退出telnet
1 | quit |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~