08 2013 档案

摘要:近期经历了一系列的nginx 50x错误,在此总结一下如何处理错误,以及各个错误可能根源。错误处理提前需要了解1 代码发布时间2 php error log3 nginx access log4 nginx error log5 每个接口访问时间log错误处理流程1. 确认是否有人刚发过代码。根据故障时间线&代码发布时间线,如果能找到精确对应关系,基本上可以判定这次事故的原因为代码发布事故,回滚代码往往是解决问题最直接有效的方式。2. 线上测试服务器,测试接口。线上测试服务器访问量较小,不存在nginx访问压力过大造成的其他隐患,可以直接测试后端的存储服务器是否有故障。3. 从日志挖掘 阅读全文
posted @ 2013-08-23 22:26 代码会说话 阅读(7142) 评论(0) 推荐(0)
摘要:下午运营反馈,应用图标无法显示。拼接图标地址并访问,nginx日志如下:xxx.23.11.109 - - [09/Oct/2012:18:37:17 +0800] "GET /applogo/2725991bb19199bd0c75b3e736ff57d3.png HTTP/1.1" 404 97 "http://myhost/page/manage" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"xxx.23.11.109 - - [09/ 阅读全文
posted @ 2013-08-23 22:24 代码会说话 阅读(994) 评论(0) 推荐(0)
摘要:[奇巧淫技]mysql可以不写group by直接使用having 等价于 group by null havinggroup by null 等价于 limit 1因此直接having 等价于 limit 1 havinghttp://www.penglixun.com/tech/database/having_without_groupby_in_mysql.html[真枪实弹]mysql数据类型介绍(date, timestamp, int, varchar需要单独总结)http://pansj89.blog.163.com/blog/static/9910621920118461329 阅读全文
posted @ 2013-08-13 20:14 代码会说话 阅读(129) 评论(0) 推荐(0)
摘要:先说一下这个题目是有问题的,php只能发送1000个$_REQUEST参数。这其中包括了$_GET, $_POST, $_COOKIE.我是在发送1180个post参数时发现,无论怎样只能发送1000个。Q1:为什么php只能发送1000个请求参数?A1:在HTTP协议中对此是完全没有规定的。也就是1000的限制和http协议无关。 主要原因:“通过调用Hash冲突实现各种语言的拒绝服务攻击漏洞”。 PHP基于开源的hash算法,在设定特殊的key情况下,可以导致hash碰撞,最终数组退化为链表。 这样每次数组插入元素操作,均变为O(n)时间复杂度。CPU利用率飙升,最终导致服务器无法提... 阅读全文
posted @ 2013-08-13 19:35 代码会说话 阅读(915) 评论(0) 推荐(0)
摘要:symfony+doctrine是我们正在用的一套框架,用于设计后台。其强大的命令行可以帮助我们生成一部分代码。本文讲一下,建完数据库之后,如何使用命令行生成相应的entity&repository.CREATE TABLE `download_ranking_coefficient` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `category_level1_id` int(11) unsigned NOT NULL default 0 COMMENT '分类', `pre30d_users` ENUM(' 阅读全文
posted @ 2013-08-13 19:15 代码会说话 阅读(1320) 评论(0) 推荐(0)
摘要:http://coolshell.cn/articles/1846.htmlhttp://cloudbbs.org/forum.php?mod=viewthread&tid=17236比较常识性的文章。重点介绍一下16条其中有一个例子:你有一个叫 “last_login” 的字段,它会在每次用户登录时被更新。但是,每次更新时会导致该表的查询缓存被清空。所以,你可以把这个字段放到另一个表中,这样就不会影响你对用户ID,用户名,用户角色的不停地读取了,因为查询缓存会帮你增加很多性能。Q1: 在我们平时数据库设计中经常使用 update_time 字段,用于标记该条记录在xxx时间被更新,那 阅读全文
posted @ 2013-08-08 11:52 代码会说话 阅读(173) 评论(0) 推荐(0)
摘要:svn用于版本管理,跟我们平时开发息息相关。svn命令对比与普通命令稍微复杂。但是其有强大的help可以帮助我们。svn help对于某些功能,仅仅依靠svn help无法完全得到结果。可以通过svn help your_command来进一步查询。现在有一个问题:1713-目前版本提交了一个重要文件(忘记文件名了),最近我肯定是修改了这个文件,我想看看我修改了什么。大体思路:1. 首先根据log查看到底修改了那些文件2. 找到具体文件使用svn diff来查看修改内容。>>>svn help logValid options: -r [--revision] arg : A 阅读全文
posted @ 2013-08-07 20:24 代码会说话 阅读(488) 评论(0) 推荐(0)
摘要:Nosql大行其道,尤其Memcached&redis,与传统的mysql相比,sharding一般会摒弃简单的求余模式,转而采用了consistent hash。介绍1篇比较好的理解的一致性hash简介:http://blog.csdn.net/sparkliang/article/details/5279393http://www.nowamagic.net/librarys/veda/detail/1336在 http://blog.csdn.net/xinguan1267/article/details/7870308有代码实例&性能对比。看了这篇博文的性能对比有点疑惑 阅读全文
posted @ 2013-08-07 12:08 代码会说话 阅读(220) 评论(0) 推荐(0)