转:视觉中国的NoSQL之路:从MySQL到MongoDB

摘要: 起因 视觉中国网站(www.chinavisual.com)是国内最大的创意人群的专业网站。2009年以前,同很多公司一样,我们的CMS和社区产品都构建于PHP+Nginx+MySQL之上;MySQL使用了Master+Master的部署方案;前端使用自己的PHP框架进行开发;Memcached作为缓存;Nginx进行Web服务和负载均衡;Gearman进行异步任务处理。在传统的基于静态内容(如文章,资讯,帖子)的产品,这个体系运行良好。通过分级的缓存,数据库端实际负载很轻。2009年初,我们进行了新产品的开发。此时,我们遇到了如下一些问题。 用户数据激增:我们的MySQL某个信息表上... 阅读全文
posted @ 2013-09-29 14:16 郭永荣 阅读(258) 评论(0) 推荐(0)

转:你需要知道的NoSQL数据库10件事

摘要: 你需要知道的NoSQL数据库10件事NoSQL的5个优势 1.弹性扩展 多年来,数据库管理员一直依赖于向上扩展(scale up)-随着数据库负载的增加购买更大的数据库服务器―而不是向外扩展-随着负载的增加将数据库分不到多个不同的主机上。然而,随着每秒事务数与可用性需求的提高,以及数据库往云或虚拟环境的迁移,向外扩展到廉价硬件的经济优势越来越难以抵挡。 RDBMS或许比较难以在廉价的集群上进行向外扩展,但是,NoSQL数据库的新品从设计之初就是为了利用新节点的优势进行透明扩展,他们通常在设计时就考虑使用低成本的廉价硬件。 2.大数据量 在过去10年,与每秒事务数的增长超出了认知一样,... 阅读全文
posted @ 2013-09-29 14:01 郭永荣 阅读(169) 评论(0) 推荐(0)

转:为什么要使用NoSQL

摘要: 为什么要使用NoSQLNoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面。今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会。 非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展,希望跟我一样有兴趣的朋友加入进来。这次的NoSQL专栏系列将先整体介绍NoSQL,然后介绍如何把NoSQL运用到自己的项目中合适的场景中,还会适当地分析一些成功案例,希望有成功使用NoSQL经验. 阅读全文
posted @ 2013-09-29 14:01 郭永荣 阅读(164) 评论(0) 推荐(0)

转:大数据量高并发的数据库优化(一)

摘要: 一、数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的。 在一个系统分析、设计阶段,因为数据量较小,负荷较低。我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程。 所以在考虑整个系统的流程的时候,我们必须要考虑,在高并发大数据量的访问情况下,我们的系统会不会出现极端的情况。(例如:对外统计系统在7月16 阅读全文
posted @ 2013-09-29 13:38 郭永荣 阅读(258) 评论(0) 推荐(0)

转:大数据排序、查找方法

摘要: 一、查找1、位图法10亿个正整数,只有其中1个数重复出现过,要在O(n)的时间里面找出这个数,内存要尽可能少(小于100M)。(1)首先看一下10亿个正整数,正整数可以表示的范围为1到2的31次方-1。10亿也就是1*10^9,2^31次方=2*1024*1024*1024>20亿再想起int为32位。再想起位图法。位图法也就是对于出现的数,其中每1bit代表这个数,如果该位为1,则说明该数出现;如果该位为0,则说明该数没有出现。那多大的内存能够表示10亿的数呢?1 byte = 8 bit1024 byte = 8*1024 bit = 1k1024 k = 8*1024*1024 b 阅读全文
posted @ 2013-09-29 12:33 郭永荣 阅读(2060) 评论(0) 推荐(0)

转: 瞬间秒杀掉:99%的海量数据处理面试题

摘要: 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问题。最后,有一点必须强调的是,全文行文是基于面试题的分析基础之上的,具体实践过程中,还是得具体情况具体分析,且场景也远比本文所述的任何一种情况复杂得多。 OK,若有任何问题,欢迎随时不吝赐教。谢谢。何谓海量数据处理? 所谓海量数.. 阅读全文
posted @ 2013-09-29 12:23 郭永荣 阅读(388) 评论(0) 推荐(0)

转:前端工程与性能优化(下):静态资源管理与模板框架

摘要: 本系列文章从一个全新的视角来思考web性能优化与前端工程之间的关系,通过解读百度前端集成解决方案小组(F.I.S)在打造高性能前端架构并统一百度40多条前端产品线的过程中所经历的技术尝试,揭示前端性能优化在前端架构及开发工具设计层面的实现思路。在上一部分,我们介绍了静态资源版本更新与缓存。今天的部分将会介绍静态资源管理与模板框架的用法。静态资源管理与模板框架让我们再来看看前面的优化原则表还剩些什么:优化方向优化手段请求数量合并脚本和样式表,拆分初始化负载请求带宽移除重复脚本缓存利用使Ajax可缓存页面结构将样式表放在顶部,将脚本放在底部,尽早刷新文档的输出很不幸,剩下的优化原则都不是使用工具就 阅读全文
posted @ 2013-09-27 09:56 郭永荣 阅读(264) 评论(0) 推荐(0)

转:前端工程与性能优化(上):静态资源版本更新与缓存

摘要: 每个参与过开发企业级web应用的前端工程师或许都曾思考过前端性能优化方面的问题。我们有雅虎14条性能优化原则,还有两本很经典的性能优化指导书:《高性能网站建设指南》、《高性能网站建设进阶指南》。经验丰富的工程师对于前端性能优化方法耳濡目染,基本都能一一列举出来。这些性能优化原则大概是在7年前提出的,对于web性能优化至今都有非常重要的指导意义。然而,对于构建大型web应用的团队来说,要坚持贯彻这些优化原则并不是一件十分容易的事。因为优化原则中很多要求是与工程管理相违背的,比如“把css放在头部”和“把js放在尾部”这两条原则,我们不能让团队的工程师在写样式和脚本引用的时候都去修改一个相同的页面 阅读全文
posted @ 2013-09-27 09:50 郭永荣 阅读(216) 评论(0) 推荐(0)

在CentOS6上使用YUM安装php5.5.x

摘要: 这里使用Webtatic EL6的YUM源来安装php5.5,我们首页安装Webtatic EL6 YUM源rpm-Uvhhttp://repo.webtatic.com/yum/el6/latest.rpm安装php5.4yuminstallphp55w如果安装失败,建议您先卸载以前的php再进行安装,使用yum remove php php-*文章来源于:http://www.linuxidc.com/Linux/2012-06/62963.htm 阅读全文
posted @ 2013-09-26 16:22 郭永荣 阅读(414) 评论(0) 推荐(0)

在CentOS6上使用YUM安装Mysql5.5.x

摘要: 1、安装MySQL 5.5.x的yum源: rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm 2、安装MySQL客户端的支持包: yum install libmysqlclient* --enablerepo=webtatic 3、卸载MySQL老版本的软件包: yum remove mysql mysql-* 4、安装MySQL 5.5的客户端和服务端: yum install mysql55 mysql55-server --enablerepo=webtatic //--enablerepo=webtatic 指定使用. 阅读全文
posted @ 2013-09-26 16:17 郭永荣 阅读(492) 评论(0) 推荐(0)