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。
Command
Description
Example
get
Reads a value
get mykey
set
Set a key unconditionally
set mykey 0 60 5
add
Add a new key
add newkey 0 60 5
replace
Overwrite existing key
replace key 0 60 5
append
Append data to existing key
append key 0 60 15
prepend
Prepend data to existing key
prepend key 0 60 15
incr
Increments numerical key value by given number
incr mykey 2
decr
Decrements numerical key value by given number
decr mykey 5
delete
Deletes an existing key
delete mykey
flush_all
Invalidate specific items immediately
flush_all
Invalidate all items in n seconds
flush_all 900
stats
Prints general statistics
stats
Prints memory statistics
stats slabs
Prints memory statistics
stats malloc
Print higher level allocation statistics
stats items
stats detail
stats sizes
Resets statistics
stats reset
version
Prints server version.
version
verbosity
Increases log level
verbosity
quit
Terminate telnet session
quit
查看 Statistics
通过下面命令查看 statistics 信息:
stats
你会获得一个服务状态的详细列表信息,具体情况如下:
参数
值
描述
pid
7862
memcache服务器进程ID
uptime
12617972
服务器已运行秒数
time
1320756409
服务器当前Unix时间戳
version
1.4.5
memcache版本
pointer_size
64
指针大小
rusage_user
1.731736
进程累计用户时间
rusage_system
251.421778
进程累计系统时间
curr_connections
41
当前连接数量
total_connections
848
Memcached运行以来连接总数
connection_structures
46
Memcached分配的连接结构数量
cmd_get
164377
get命令请求次数
cmd_set
58617
set命令请求次数
cmd_flush
0
flush命令请求次数
get_hits
105598
get命令命中次数
get_misses
58779
get命令未命中次数
delete_misses
0
delete命令未命中次数
delete_hits
0
delete命令命中次数
incr_misses
0
incr命令未命中次数
incr_hits
0
incr命令命中次数
decr_misses
0
decr命令未命中次数
decr_hits
0
decr命令命中次数
cas_misses
0
cas命令未命中次数
cas_hits
0
cas命令命中次数
cas_badval
0
使用擦拭次数
auth_cmds
0
认证命令处理的次数
auth_errors
0
认证失败数目
bytes_read
262113283
读取总字节数
bytes_written
460023263
发送总字节数
limit_maxbytes
536870912
分配的内存总大小(字节)
accepting_conns
1
服务器是否达到过最大连接(0/1)
listen_disabled_num
0
失效的监听数
threads
4
当前线程数
conn_yields
0
连接操作主动放弃数目
bytes
1941693
当前存储占用的字节数
curr_items
476
当前存储的数据总数
total_items
58617
启动以来存储的数据总数
evictions
0
LRU释放的对象数目
reclaimed
48830
已过期的数据条目来存储新数据的数目
如果你不确定你是否有足够的内存,你可以通过查看“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