利用php获取memcache的运行状态
<DIV>断断续续的看几天php,借着其他语言基础,写了个memcache状态抓取代码</DIV><DIV>
<DIV class=codeText id=codeText>
<OL class=dp-css style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; MARGIN: 0px 1px 0px 0px; PADDING-TOP: 5px">
<LI><SPAN style="COLOR: #000000"><SPAN style="COLOR: #0000cc"><</SPAN><SPAN style="COLOR: #0000cc">?</SPAN><SPAN style="COLOR: #0000ff">php</SPAN><BR></LI>
<LI><SPAN style="COLOR: #0000ff">$</SPAN><SPAN style="COLOR: #008080">mem</SPAN> <SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #0000ff">new</SPAN> Memcache<SPAN style="COLOR: #0000cc">;</SPAN> #new关键字生成一个对象<BR></LI>
<LI><SPAN style="COLOR: #0000ff">$</SPAN><SPAN style="COLOR: #008080">mem</SPAN><SPAN style="COLOR: #0000cc">-</SPAN><SPAN style="COLOR: #0000cc">></SPAN>connect<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff00ff">"127.0.0.1"</SPAN><SPAN style="COLOR: #0000cc">,</SPAN>11211<SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">; #->调用类方法</SPAN><BR></LI>
<LI><SPAN style="COLOR: #0000ff">$</SPAN><SPAN style="COLOR: #008080">status</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #0000ff">$</SPAN><SPAN style="COLOR: #008080">mem</SPAN><SPAN style="COLOR: #0000cc">-</SPAN><SPAN style="COLOR: #0000cc">></SPAN>getstats<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI><SPAN style="COLOR: #0000ff">foreach</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000ff">$</SPAN><SPAN style="COLOR: #008080">status</SPAN> <SPAN style="COLOR: #0000ff">as</SPAN> <SPAN style="COLOR: #0000ff">$</SPAN><SPAN style="COLOR: #008080">key</SPAN><SPAN style="COLOR: #0000cc">=</SPAN><SPAN style="COLOR: #0000cc">></SPAN><SPAN style="COLOR: #0000ff">$</SPAN><SPAN style="COLOR: #008080">value</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><BR></LI>
<LI><SPAN style="COLOR: #ff0000">print</SPAN> <SPAN style="COLOR: #ff00ff">"$key $value\n"</SPAN><SPAN style="COLOR: #0000cc">;</SPAN></LI>
<LI><SPAN style="COLOR: #0000cc">$mem->close();</SPAN><BR></LI>
<LI><SPAN style="COLOR: #0000cc">?</SPAN><SPAN style="COLOR: #0000cc">></SPAN></SPAN></LI></OL></DIV></DIV>
<DIV>没想到memcache在php里被当做Class了,用new生成一个对象,调用connect方法连接Memcached server,然后getstatus得到状态,最后foreach打印arrry,结果如下:(看来这个memcache很闲啊,几乎什么都没做)</DIV>
<DIV>pid 27890<BR>uptime 4222<BR>time 1313133923<BR>version 1.4.6<BR>libevent 2.0.12-stable<BR>pointer_size 64<BR>rusage_user 0.001999<BR>rusage_system 0.006998<BR>curr_connections 5<BR>total_connections 20<BR>connection_structures 6<BR>cmd_get 15<BR>cmd_set 15<BR>cmd_flush 0<BR>get_hits 15<BR>get_misses 0<BR>delete_misses 0<BR>delete_hits 0<BR>incr_misses 0<BR>incr_hits 0<BR>decr_misses 0<BR>decr_hits 0<BR>cas_misses 0<BR>cas_hits 0<BR>cas_badval 0<BR>auth_cmds 0<BR>auth_errors 0<BR>bytes_read 683<BR>bytes_written 11330<BR>limit_maxbytes 134217728<BR>accepting_conns 1<BR>listen_disabled_num 0<BR>threads 4<BR>conn_yields 0<BR>bytes 80<BR>curr_items 1<BR>total_items 15<BR>evictions 0<BR>reclaimed 7</DIV>
<DIV>要了解memcache相关的类和函数,还得$path/bin/php --re memcache看一下。</DIV>
<DIV> </DIV>
<DIV>看来php和python在OOP上还是有区别的,python生成一个对象只需要:</DIV>
<DIV> </DIV>
<DIV>newobject=classname() #可能需要传递参数</DIV>
<DIV>newobject.method #调用方法。</DIV>
页:
[1]