当memcached服务器端装好了,相应的调用端也配置好了,但是我们怎么知道memcache使用内存的,以及他是怎么工作的呢?接下来,我把我对memcache的监控的过程根大家分享一下:
1.配置监控文件
cd memcache-2.2.4
[zhangy@BlackGhost memcache-2.2.4]$ ls |grep .PHP
example.PHP
memcache.PHP
run-tests.PHP
cp memcache.PHP /home/zhangy/www/test
nano /home/zhangy/www/test/memcache.PHP 打开修改配置
define('ADMIN_USERNAME','zhangy'); // Admin Username define('ADMIN_PASSWORD','adsfadf'); // Admin Password $MEMCACHE_SERVERS[] = '127.0.0.1:12000'; // add more as an array
2.能过url访问memcache.PHP
上图中的东西,英语好一点的看懂没问题,一般的要去查翻译了。我就说一点,
Hits: 29 (67.4%) #点击了29
Misses: 14 (32.6%) #字面意思,丢失了14。我这样说肯定有很多人想,这14是memcache没起作用。
对的,是没有起作用,第一次都不会起作用,如果不明白,去搞清楚,memcache的调用原理。
Server | Key | Value | Delete |
---|---|---|---|
127.0.0.1:12000 | 01cc7cb61ddbb6c2b11f25297705166d flag:1 Size:507.0 Bytes |
a:17:{s:7:"AdminId";s:1:"8";s:9:"AdminNa me";s:11:"123@abc.com";s:13:"AdminPasswo rd";s:32:"e10adc3949ba59abbe56e057f20f88 3e";s:8:"TelPhone";s:7:"2316544";s:11:"C ompanyName";s:12:"公司";s:12:"Co ntractName";s:7:"xtakaaa";s:3:"Sex";s:1: "0";s:14:"CompanyAddress";s:8:"adsfadsf" ;s:12:"CompanyPhone";s:6:"326541";s:7:"Z ipCode";s:7:"5546645";s:3:"Fax";s:7:"546 5159";s:5:"Email";N;s:10:"UpdateLine";N; s:8:"DateLine";s:10:"1243420034";s:8:"Is Online";s:1:"0";s:9:"AdminType";s:1:"2"; s:10:"MerchantID";s:1:"0";} | Delete |
上面的东西是对memcache的key和value的管理。
注意:曾经我被一个同事鄙视了,为什么会鄙视呢?在一起做项目,当时他告诉我,写sql的时,不要用join,left join 等,他的意思是说sql语句只对单表进行操作。对话如果下
我:为什么不能使用join,left join 这些东西?
他:因为用这join,left join会影响速度。
我:有二张表关联,二张表用主键关联,我从一张里面找出我要数据,然后在从另外一张表里面找出我要的数据,然后在用PHP的循环套循环来,来得到我真正想要的数据,这样做真得比join,left join快吗,如果真的快,拿出测试数据。
他:这个靠经验,并且说memcache只支持单表操作
我:(我心想我做PHP也快四年了),如果memcache只支持单表操作的话,那不会有这么多人用它。
上面的这个key 01cc7cb61ddbb6c2b11f25297705166d 就是一个联合查寻
针对我刚才所说的,对底是join,left join快,还是用PHP循环套循环,我会给出测试数据。并且可以让大家亲
自来测试