搜索本站
2021 年三月 一 二 三 四 五 六 日 « 二 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -
近期文章
文章分类
- Ajax (8)
- Css (4)
- C语言 (1)
- Eclipse (2)
- git (6)
- hadoop (4)
- hbase (3)
- Hibernate (2)
- Java Web (9)
- Javascript (12)
- Linux (18)
- Macos (1)
- Mysql (9)
- Nosql (12)
- Oracle (5)
- Php (47)
- php7升级 (1)
- Python (1)
- Struts2 (4)
- svn (3)
- Uchome (4)
- Wap (2)
- Webservice (2)
- Zendframework (3)
- 公开课 (1)
- 工作总结 (6)
- 心情随笔 (8)
- 扯淡 (1)
- 服务器端 (13)
- 生活 (8)
- 网络基础 (3)
- 错误集锦 (4)
- 默认分类 (24)
文章归档
- 2021 年二月 (1)
- 2017 年三月 (2)
- 2016 年十一月 (1)
- 2016 年八月 (1)
- 2016 年一月 (1)
- 2015 年九月 (9)
- 2015 年八月 (5)
- 2015 年七月 (2)
- 2015 年五月 (1)
- 2015 年四月 (3)
- 2015 年二月 (1)
- 2015 年一月 (3)
- 2014 年十二月 (4)
- 2014 年十一月 (1)
- 2014 年八月 (5)
- 2014 年七月 (3)
- 2014 年五月 (5)
- 2014 年四月 (7)
- 2014 年三月 (2)
- 2014 年二月 (3)
- 2014 年一月 (1)
- 2013 年十二月 (1)
- 2013 年十一月 (10)
- 2013 年八月 (1)
- 2013 年七月 (2)
- 2013 年五月 (3)
- 2013 年三月 (1)
- 2012 年十二月 (2)
- 2012 年十一月 (2)
- 2012 年九月 (1)
- 2012 年八月 (1)
- 2012 年七月 (3)
- 2012 年六月 (1)
- 2012 年五月 (2)
- 2012 年四月 (1)
- 2012 年三月 (10)
- 2012 年二月 (2)
- 2012 年一月 (1)
- 2011 年十一月 (1)
- 2011 年十月 (6)
- 2011 年九月 (8)
- 2011 年八月 (5)
- 2011 年七月 (1)
- 2011 年六月 (5)
- 2011 年五月 (2)
- 2011 年三月 (1)
- 2011 年二月 (10)
- 2011 年一月 (3)
- 2010 年十二月 (4)
- 2010 年十一月 (4)
- 2010 年十月 (2)
- 2010 年九月 (1)
- 2010 年八月 (10)
- 2010 年七月 (7)
- 2010 年六月 (1)
- 2010 年四月 (6)
- 2010 年三月 (3)
- 2010 年二月 (3)
- 2010 年一月 (1)
- 2009 年十二月 (1)
- 2009 年十月 (7)
- 2009 年九月 (15)
- 2009 年八月 (7)
- 2009 年七月 (7)
标签云
近期评论
友情链接
标签归档:memcacheq
队列执行效率
一个队列memcacheq存储待发送的短信,计划任务每分钟一次取100条下发,如果一分钟内未执行完毕,下次又取100条下发,如此,内存占用升高,这也是小事,好像也费不了多少内存。但是对调用移动接口下发短信的接口造成压力,一般下发接口可能做了请求频率限制,这样导致大量短信发送失败,还得想办法再插入到队列重发。改善方法:用memcache设置一个标识,开始下发时表示有下发任务,下个请求来了取该标识是否为有任务状态,没有就设置标识为有任务,然后从队列取。就是有锁直接退出,无锁就加锁干活,干完活解锁。恩,用memcache存临时性标识确实挺好的,不能只局限于想着单独的存一坨结果集什么的。
php获取memcache内所有键值对
网上看了一个,可以取到所有key值。但是发现php手册里写的稍微有点不一样。 php手册 Memcache::getExtendedStats Note: 这个函数在Memcache2.0.0版本加入。 Note: (译注)获取Memcache内所有数据方法:首先使用getExtendedStats(‘slabs’)获取到每个服务器上活动slabs分块的id, 然后 使用getExtendedStats(‘cachedump’, $slabid, $limit)来获取每个slab里面缓存的项,其中$slabid是slab分块id, $limit指 期望获取其中的多少条记录。 整合了一下: function show($host,$port){ $memcache_obj = new Memcache(); $memcache_obj->addServer($host, $port); //echo $memcache_obj->getversion(); $memcache_obj->set(‘xx’,’xx’); $memcache_obj->set(‘yy’,’yy’); $memcache_obj->set(‘zz’,’zz’); //方式一 网上的 $result = $memcache_obj->getExtendedStats(‘items’); $items=$result["$host:$port"]['items']; //方式二 php手册说的 //$result = $memcache_obj->getExtendedStats(‘slabs’); //$items = … 继续阅读
memcacheq
详情见:http://memcachedb.org/memcacheq/ 基于memcache的一个队列服务,也就是相同的key值设置多个值就形成了一个队列,先进先出。出了就取不到了。 php程序存取跟memcache 一样。 linux安装脚本: #!/bin/bashcd /usr/local/src/LNMP/memcacheqtar xzf db-5.2.28.tar.gz cd db-5.2.28cd build_unix/../dist/configuremakemake installcd /usr/local/src/LNMP/memcacheqtar xzf libevent-1.4.14b-stable.tar.gzcd libevent-1.4.14b-stable./configuremakemake installecho "/usr/local/BerkeleyDB.5.2/lib" >>/etc/ld.so.confldconfigcd /usr/local/src/LNMP/memcacheqtar xvzf memcacheq-0.2.0.tar.gzcd memcacheq-0.2.0sed -i ‘s/BerkeleyDB.4.7/BerkeleyDB.5.2/g’ configure //好像是它的configure脚本里写死了berkeleydb的版本。。。./configure –enable-threadsmakemake installmkdir /data/memcacheqmemcacheq -d -r -H /data/memcacheq -N -R -L 1024 -B … 继续阅读