使用 PHP 获取 Memcache 内存缓存的运行状态以及各个参数的中文含义

发布于 2019-06-29 13:08:22 字数 6803 浏览 2500 评论 0

Memcache 非常的好用,而且运行速度快功能丰富,唯一不好的就是查看其运行状态有点蒙,可以通过命令行查看其运行状态,也可以通过安装相关的软件来查看,如果您想自己做一个 Memcache 管理器,那么这篇文章获取对你很有用。

PHP 查看

你需要安装 Memcache 的 PHP 扩展,并重启 Web 服务,使用下面的代码可获取到状态信息:

$mem =new Memcache;
$mem->connect("127.0.0.1",11211);
$status=$mem->getstats();
foreach($status as $key=>$value)
print "$key $value\n";
$mem->close();

命令行查看

当 Memcache 启动后,我们可以通过下面的命令连接上 Memcache:

telnet 127.0.0.1 11211

Memcache 命令

下面是一些主要用到的命令,具体详细情况请查阅官方文档 doc/protocol.txt

CommandDescriptionExample
getReads a valueget mykey
setSet a key unconditionallyset mykey 0 60 5
addAdd a new keyadd newkey 0 60 5
replaceOverwrite existing keyreplace key 0 60 5
appendAppend data to existing keyappend key 0 60 15
prependPrepend data to existing keyprepend key 0 60 15
incrIncrements numerical key value by given numberincr mykey 2
decrDecrements numerical key value by given numberdecr mykey 5
deleteDeletes an existing keydelete mykey
flush_allInvalidate specific items immediatelyflush_all
Invalidate all items in n secondsflush_all 900
statsPrints general statisticsstats
Prints memory statisticsstats slabs
Prints memory statisticsstats malloc
Print higher level allocation statisticsstats items
stats detail
stats sizes
Resets statisticsstats reset
versionPrints server version.version
verbosityIncreases log levelverbosity
quitTerminate telnet sessionquit

查看 Statistics

通过下面命令查看 statistics 信息:

stats

你会获得一个服务状态的详细列表信息,具体情况如下:

参数描述
pid7862memcache服务器进程ID
uptime12617972服务器已运行秒数
time1320756409服务器当前Unix时间戳
version1.4.5memcache版本
pointer_size64指针大小
rusage_user1.731736进程累计用户时间
rusage_system251.421778进程累计系统时间
curr_connections41当前连接数量
total_connections848Memcached运行以来连接总数
connection_structures46Memcached分配的连接结构数量
cmd_get164377get命令请求次数
cmd_set58617set命令请求次数
cmd_flush0flush命令请求次数
get_hits105598get命令命中次数
get_misses58779get命令未命中次数
delete_misses0delete命令未命中次数
delete_hits0delete命令命中次数
incr_misses0incr命令未命中次数
incr_hits0incr命令命中次数
decr_misses0decr命令未命中次数
decr_hits0decr命令命中次数
cas_misses0cas命令未命中次数
cas_hits0cas命令命中次数
cas_badval0使用擦拭次数
auth_cmds0认证命令处理的次数
auth_errors0认证失败数目
bytes_read262113283读取总字节数
bytes_written460023263发送总字节数
limit_maxbytes536870912分配的内存总大小(字节)
accepting_conns1服务器是否达到过最大连接(0/1)
listen_disabled_num0失效的监听数
threads4当前线程数
conn_yields0连接操作主动放弃数目
bytes1941693当前存储占用的字节数
curr_items476当前存储的数据总数
total_items58617启动以来存储的数据总数
evictions0LRU释放的对象数目
reclaimed48830已过期的数据条目来存储新数据的数目

如果你不确定你是否有足够的内存,你可以通过查看evictions”的值来确定Memcache实例的内存使用情况,如果还有足够的内存,那么“evictions”的值应该为0或者不在增长。

查看 Memory Statistics

你可以通过下面命令查看当前 memory statistics :

stats slabs

Example:

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 13106
STAT 1:free_chunks 1
STAT 1:free_chunks_end 12886
STAT 2:chunk_size 100
STAT 2:chunks_per_page 10485
STAT 2:total_pages 1
STAT 2:total_chunks 10485
STAT 2:used_chunks 10484
STAT 2:free_chunks 1
STAT 2:free_chunks_end 10477
[...]
STAT active_slabs 3
STAT total_malloced 3145436
END

查看各个Slab中Item的数目和年龄(最后一次访问距现在的秒数)

stats items

结果:

stats items
STAT items:1:number 220
STAT items:1:age 83095
STAT items:2:number 7
STAT items:2:age 1405
[...]
END

清空统计数据

stats resets

显示内存分配数据

stats malloc

设置或显示详细操作记录

stats detail [on|off|dump]

清空所有键值

flush_all

退出

quit

最大有效期为 30 天

不要设置过期时间超过30天,如果超过30天,Memcache会把它当做一个 Unix timestamp。

设置最大有效期(2592000ms)例子:

set my_key 0 2592000 1
1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文