博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年12月30日

摘要: 用tornado,一般都用到它的AsyncHTTPClient的 fetch。我们可以参考 fetch,使用tornado的特性,写异步回调程序首先看看 fetch的实现,关键是用了futuredef fetch(self, request, callback=None, **kwargs): ... 阅读全文

posted @ 2014-12-30 22:57 david2303 阅读(840) 评论(0) 推荐(0) 编辑

摘要: 之前的项目都是用django开发,django写单元测试很方便tornado的好处是异步,而且有websockettornado的单元测试用到了unittest,例子如下from tornado.test.util import unittestfrom tornado.testing import... 阅读全文

posted @ 2014-12-30 10:33 david2303 阅读(1665) 评论(0) 推荐(0) 编辑

2014年12月18日

摘要: 用django 框架,异步任务用celery,队列用redis出现了这个问题,too many connectionCouldn't ack '5f41afc62d-a112-bef34d5de1cc', reason:ConnectionError('Too many connections',)... 阅读全文

posted @ 2014-12-18 22:51 david2303 阅读(2103) 评论(0) 推荐(0) 编辑

2014年12月16日

摘要: zbar 可以解析 qrcode不过安装过程可是艰辛本地开发用mac,生产服务器用ubuntu。安装方式不同。整理出以下安装方式Ubuntu 14.04.1 LTS (GNU/Linux 3.8.0-29-generic x86_64)$ apt-get install libzbar-dev$ p... 阅读全文

posted @ 2014-12-16 13:57 david2303 阅读(2922) 评论(1) 推荐(0) 编辑

2014年12月13日

摘要: python django框架接收到字符aa = u'%E7%88%B1%E4%BD%A0'b = urllib.unquote(a)u'\xe7\x88\xb1\xe4\xbd\xa0'print bç±ä½print'\xe7\x88\xb1\xe4\xbd\xa0'爱你解决方法a = u'%E... 阅读全文

posted @ 2014-12-13 11:50 david2303 阅读(331) 评论(0) 推荐(0) 编辑

2014年1月24日

摘要: users:leto "{name: leto, planet: dune, likers: [spice]}"redis不能做查询我想查出planet都是dune的users都有哪些记录。redid做不到持久化With respect to persistence, by default, Redis snapshots the database to disk based on how many keys have changed. You configure it so that if X number of keys change, then save the da 阅读全文

posted @ 2014-01-24 00:37 david2303 阅读(210) 评论(0) 推荐(0) 编辑

2013年9月25日

摘要: 这一次是关于内存使用的分析int main (int argc, char **argv) { //....................... //....................... //....................... slabs_init(settings.maxbytes, settings.factor, preallocate); //....................... //....................... //....................... }void s... 阅读全文

posted @ 2013-09-25 16:37 david2303 阅读(266) 评论(0) 推荐(0) 编辑

2013年9月8日

摘要: 从main函数开始,位于memcached.c 1 int main (int argc, char **argv) { 2 //....................... 3 //....................... 4 //....................... 5 6 7 /* handle SIGINT 注册信号处理函数,目前sig_handler是空函数*/ 8 signal(SIGINT, sig_handler); 9 10 settings_init();11 /* ini... 阅读全文

posted @ 2013-09-08 10:46 david2303 阅读(335) 评论(0) 推荐(0) 编辑

2013年9月7日

摘要: 首先启动memcachedmemcached -m 512 -p 11211 -vvmemcached -m 512 -p 11212 -vv该例分配给 memcached 的可用内存 512M, 监听 11211 端口, 另外一个监听11212端口, 显示详细的运行信息。使用方法,我将用代码+注释来说明, test.cpp 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 int main(int argc, char** argv) 8 { 9 memcached_st *memc;10 m... 阅读全文

posted @ 2013-09-07 10:14 david2303 阅读(540) 评论(0) 推荐(0) 编辑

2013年8月19日

摘要: 今天稍微看了下memcached。这是一个内存对象缓存,形式是key-value用到了libevent处理事件。用了Slab存储数据,好处是碎片少,但会浪费内存。用了LRU来分配空间。比较多用于分布式如果跟MySQL配合,网上找到两种方法第一种是,没有数据时,读数据库,并写一份到memcached,以后的读都从memcached上读。写的时候,先写到MySQL,然后再更新memcached。如果对数据容许有丢失的风险,还可以先只更新memcached,以后再异步写MySQL,这样好处是处理请求比较快第二种是,MySQLmemcachedUser-Defined Functions。利用MySQ 阅读全文

posted @ 2013-08-19 23:24 david2303 阅读(187) 评论(0) 推荐(0) 编辑