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

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

使用 PHP 获取 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

以上是 使用 PHP 获取 Memcache 内存缓存的运行状态以及各个参数的中文含义 的全部内容, 来源链接: utcz.com/p/232175.html

回到顶部