04 2011 档案
摘要:e.g. sh /svc/thsft/vdata/cron/create_cache.sh
阅读全文
摘要:在一个项目中遇到了一个奇怪的问题,耗费了我不少时间都没有解决,最终调试发现是判断的问题—-关于0和 ‘ ‘ (空单引号,为好看清我加了个空格)的判断,我发现 0==” 居然成立,郁闷的同时决定写个简单页面测试,发誓要将0,null,empty,空,false的关系搞的一清二楚。因为这很可能在一些关键地方使我们编写的程序,网站存在bug。特别是可能影响到登陆等特殊地方的安全性和逻辑正确性,虽然这是很基础的知识点,但很多人,包括一些高手都可能对0,null,empty,空,false的关系很模糊。所以自己动手做一个测试还是很需要的。php程序代码:<?php//========= 判断 0
阅读全文
摘要:PHP数组去除重复项有个内置函数array_unique(),但是php的array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组的array_unique函数//二维数组去掉重复值function array_unique_fb($array2D){ foreach ($array2D as $v){ $v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 $temp[] = $v; } $temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组 f
阅读全文
摘要:查看文件权限的语句: 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 或者 ll 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 将这10位分为d/nullrwxrwxrwx 一共有10位数 其中: 最前面那个 - 代表的是类型: d表示目录,-表示普通文件 第一个 rw- 代表的是所有者(user) 第二个 rw- 代表的是组群(group) 第三个 r-- 代表的是其他人(other) 然后我再解释一下后面那9位数: r 表示文件可以被读(read) w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话) - 表示相应的权限还没
阅读全文
摘要:1、切片法当遇到比较多的代码的时候我们不防切片进行调试在代码的不同区域中加入编号echo ‘1’;echo '2';等等等运行的时候就知道哪里出错哪里没有运行了2、防鱼法呵呵,乱叫的大面积的代码先注释掉,然后慢慢的解开注释边解开注释边运行,就知道哪里的代码出问题了3、数据跟踪法当数据某个地方出错了,可以一步步的var_dump()按照常理的去做,如果在某个区域dump的数据就问题那就是这个地方出问题了
阅读全文
摘要:C.2. 类装载 做过Zend Framework 应用性能调优的人都知道,Zend Framework 中类装载的开销是相当大的。从各组件对应的大量类文件,到类名与文件系统非唯一对应的插件的引入,大量include_once和require_once调用可能导致严重的性能问题。这章将提供一些具体的策略来解决这些问题。C.2.1. 如何优化include_path? 提高类装载速度的一个优化策略是合理安排include_path。具体而言,你应该做四件事情:使用绝对路径(或绝对路径的相对路径[原文:paths relative to absolute paths]);减少包含路径数量;ZF库的
阅读全文
摘要:1 概述... 152 目录结构类型... 152.1 古典型 (类Unix/Linux) 152.2 古典扩展型... 172.3 古典扩展嵌入型... 182.4 常规型结构... 192.5 常规模块型结构... 213 命名约定... 22本文归纳和阐述了动态网站应用中常用的集中文件组织结构,通过对每种结构的优点和缺点进行介绍,帮助开发者在开始一个新项目前有一个好的开始。本文归纳的几种层级结构是在集合众多意见和建议基础之上得到的,同时通过给每个结构命名,也便于开发者比较他们的优劣。1 概述以下目录结构的定义是从各种网站应用中总结出来的,并按一定顺序排列。l古典型结构(类Unix/Lin
阅读全文
摘要:4.4. 类4.4.1. 类的声明类的声明应该遵守以下要求:l大括号必须写在类名字的下一行;l每个类都必须有一个遵守PHPDocumentor标准的注释文档块;l类内部的代码都必须缩进4个空格;l一个PHP文件只允许有一个类;l在一个类文件里可以放置其他代码,但不提倡,对于这种情况,必须使用2个空行,把类代码和其他PHP代码分开。下面是一个规范的类的声明:/*** 文档注释块*/class SampleClass{// 类的内部代码// 必须缩进4个空格}4.4.2. 类成员变量成员变量的命名必须遵守变量命名规则。类成员变量的声明必须位于类的顶部,在函数 定义之前。不允许使用var关键字,成员
阅读全文
摘要:PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的首选语言。那么怎样才能成为一个优秀的PHP开发者呢? 要成为一名PHP编程高手并不容易,并不像很多人想象的那样,只要能够飞快地编写几条简单的代码去解决一个复杂的问题就是PHP编程高手了,真正的PHP高手还需要考虑更多的其它问题。以下三条准则是一名成熟的PHP程序员在编程中应该首先遵循的准则。 ◆懒惰是金 ◆编写漂亮的代码 ◆追求程序的速度,而不是编程的速度 懒惰是金 做一个懒惰的程序员吗?这个想法太奇怪了!因为这个世界上最忙碌的人可能就是计算机程序员了。但正是因为程序员太忙了,所以才应该在编程时学会偷懒。
阅读全文
摘要:1. 概述... 21.1. 文档主要内容... 21.2. 目标... 22. PHP文件格式要求... 22.1. 一般要求... 22.2. 缩排... 22.3. 行最大字符数... 22.4. 行结束符... 33. 命名规范... 33.1. 类的命名... 33.2. 接口类的命名... 43.3. 文件命名... 43.4. 函数与方法的命名... 43.5. 变量命名... 53.6. 常量命名... 54. 编码风格... 64.1. PHP代码定界符... 64.2 字符串书写风格... 64.3. 数组... 74.4. 类... 84.5. 函数与方法... 94.6
阅读全文
摘要:在论坛里有人问我如何统计在线人数?我也不知道什么是最好的方法。下面是本站的实现的原理,我把它写出来,供大家参考。这只是我的方法,肯定不是最好的,还希望高手们予以指正。其实,要真正统计同时在并发在线的人数,是一件不太现实的事,这是因为HTTP协议是种无状态的协议。当客户端向服务器发出一个请求时,服务器会马上建立一个新的TCP/IP连接,在该会话结束后,如页面完全载入后,这个连接就关闭了。一般来说,在线人数指的定是在一定时间段内同时访问站点的人数,而不是基于HTTP协议的并发连接数。 让我们先来看看一个访客是如何访问一个网站的。他在浏览器的地址栏里输入了目标网站的地址,然后在一段时间内持续浏览该网
阅读全文
摘要:今日在做Ajax的项目,发现一个问题:提交数据后,取不回提交的数据。郁闷多时,仔细分析,发现后台日志没有取数据的消息,前端也没有出现“正在读入数据”的提示。因此觉得应该是系统缓存的问题,遂google,解决。方法如下: 方法1:服务器端代码加入response.setHeader("Cache-Control", "no-cache, must-revalidate"); 方法2:用JavaScript在Ajax提交的时候加入一个随机数作为URL中的一个参数。req.open(url + "&" + Math.random).
阅读全文
摘要:PHP取整数函数常用的四种方法,下面收集了四个函数; 经常用到取整的函数,今天小小的总结一下!其实很简单,就是几个函数而已~~主要是:ceil,floor,round,intval ceil — 进一法取整说明float ceil ( float value )返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。 例子 1. ceil() 例子 <?phpecho ceil(4.3); // 5echo ceil(9.999); // 10?> floor —
阅读全文
摘要:/** * 得到数组的标准差 * @param unknown type $avg * @param Array $list * @param Boolen $isSwatch * @return unknown type */public static function getVariance($avg, $list, $isSwatch = FALSE) { $arrayCount = count($list); if($arrayCount == 1 && $isSwatch == TRUE){ return FALSE; }elseif($arrayCount >
阅读全文
摘要:虽然Drupal核心的运行只需要你的服务器分配8MB的内存,但是根据你站点上使用的模块数量,你可能需要增加些内存分配。当你访问?q=admin/moudles时会加载你站点上的所有模块,不管你是否启用。如果你出现了白屏,你只有两个选择:增加分配给PHP的内存,或者删除不使用的模块。根据你的主机的不同,有几个地方都可以完成这个配置,一般是php.ini,或者htaccess,具体要看你的主机状态。比如:在你的php.ini文件里设置memory_limit = 12M(推荐使用,如果你拥有这个权限的话) 在你的sites/default/settings.php文件里设置ini_set('
阅读全文
摘要:php引用(&)详解 2009-05-13 14:30 php的引用(就是在变量或者函数、对象等前面加上&符号) 在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 [php] <? $a="ABC"; $b =&$a; echo $a;//这里输出:ABC echo $b;//这里输出:ABC $b="EFG"; echo $a;//这里$a的值变为EFG 所以输出EFG e
阅读全文
摘要:一.内存溢出解决方案在做数据统计分析时,经常会遇到大数组,可能会发生内存溢出,这里分享一下我的解决方案。还是用例子来说明这个问题,如下:假定日志中存放的记录数为500000条,那么解决方案如下:ini_set(‘memory_limit’,’64M’); //重置php可以使用的内存大小为64M,一般在远程主机上是不能修改php.ini文件的,只能通过程序设置。注:在safe_mode(安全模式)下,ini_set失效set_time_limit(600);//设置超时限制为6分钟$farr = $Uarr = $Marr = $IParr = $data = $_sub = array();
阅读全文
摘要:Spider 是一个MySQL的存储引擎,支持事务处理,无限用户数访问,支持分区和集群。
阅读全文
摘要:Q4M (queue for mysql) 是开源的实现队列功能的mysql存储引擎,目前支持mysql 5.1 以上的版本,有perl 的接口。Q4M 刚刚发布了0.8.3,虽然还比较原始,但是速度很快。
阅读全文
摘要:Wednesday, October 20, 2010Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server Most of high scale web applications use MySQL + memcached. Many ofthem use also NoSQL like TokyoCabinet/Tyrant. In some cases people havedropped MySQL and have shifted to NoSQL. One of the big
阅读全文
摘要:喜欢Mysql,不仅仅是因为他简单的使用,更深一层次的是因为他的开源、他的插入式引擎及更优秀的plugin!从队列式存储引擎Q4M(http://q4m.github.com/)到memcache 的UDF(http://hi.baidu.com/ytjwt/blog/item/5fc8303f226c542f71cf6c3c.html) 到本文要说到的NoSQL for MySQL,去年的某一天,一朋友跟我说,nosql性能有多好多好时,我说,如果提取像k/v形式的数据,假设:用主键查询一个数据,你觉得性能会怎样呢?其实当时我也知道,肯定是比不过memcache之类的cache,因为,mys
阅读全文
摘要:事务型数据库的首选引擎,支持ACID事务,支持行级锁定。InnoDB是为处理巨大数据量时的最大性能设计。InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。InnoDB默认地被包含在MySQL二进制分发中。Windows Essentials installer使InnoDB成为Windows上MySQ
阅读全文
摘要:随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:1、High performance - 对数据库高并发读写的需求web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对
阅读全文
摘要:这次是Fotolog的经验,传说中比Flickr更大的网站,Fotolog在21台服务器上部署了51个memcached实例,总计有254G缓存空间可用,缓存了多达175G的内容,这个数量比很多网站的数据库都要大的多,原文是A Bunch of Great Strategies for Using Memcached and MySQL Better Together,我这里还是选择性的翻译以及按照我的理解补充,感谢Todd Hoff,总能给我们一些学习的案例,从这里也能看出国外技术的开放态度,不似我们,其实就那么点小九九还藏着掖着,好了,进入正题。一、关于memcached 还不知道这个?那
阅读全文
摘要:先易后难:1.Mysql (注意,注意,要下载一个64位的mysql)# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.30-linux-x86_64-glibc23.tar.gz/from/http://mysql.he.net// //下载# tar zxvf mysql-5.1.30-linux-x86_64-glibc23.tar.gz //解压# ln -s mysql-5.1.30-linux-x86_64-glibc23 mysql //链接# groupadd mysql //增加组# useradd -
阅读全文
摘要:MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:*面向集合存储,易存储对象类型的数据。 *模式自由。*支持动态查询。 *支持完全索引,包含内部对象。 *支持查询。 *支持复制和故障恢复。 *使用高效的二进制数据存储,包括大型对象(如视频等)。*自动处理碎片,以支持云计算层次的扩展性*支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。*文件存储格式为BSON(一种JSON的扩展)*可通过网络访问所谓“面向集合”(Collenction-O
阅读全文
摘要:Linux是GNU/Linux的缩写,通常指各种Linux发行版的通称。常见的Linux厂家主要有Redhat/Novell等。Redhat有两大Linux产品系列,其一是免费的Fedora Core系列,主要用于桌面版本,提供了较多新特性的支持。另外一个产品系列是收费的Enterprise系列,这个系列分成:AS/ES/WS等分支。Advanced Server,缩写即AS。AS在标准Linux内核的基础上,做了性能上的增强,并提高了可靠性,集成了众多常见服务器的驱动程序。可轻松识别IBM/DELL/HP等常见机架式服务器的磁盘阵列卡等设备。AS主要版本2.x/3.x/4.x,也就是我们所说
阅读全文
摘要:正如你所知,Linux是当今炙手可热的数据中心服务器操作系统。你也知道它可以帮助你在授权许可和维护费用等方面节省开支。但是,面对市面上纷繁的Linux版本,你究竟会选择哪一种作为服务器的操作系统呢?我在这里列出了十大热门的Linux服务器操作系统发行版本——你可能对其中的一些并不太熟悉。以下排序在功能及特点上不分先后,不过这些版本的共同之处在于易于使用、可进行商业支持和具备数据中心可靠性。 Ubuntu Ubuntu-作为几乎所有Linux相关产品的榜首,基于Debian的Ubuntu可谓独树一帜。从它简易的安装,到卓越的硬件恢复能力,再到世界级的商业支持水平,不论从哪一方面,Ubuntu都.
阅读全文
摘要:越来越多的人选择linux作为web服务器的操作系统,在众多版本中CentOS凭借着优秀的血统和绝对的免费脱颖而出获得了非常多的管理员的热爱。可能很多新手对CentOS这个linux服务器系统发行版有些陌生,但是如果提到大名鼎鼎的redhat那可是无人不知无人不晓,其实CentOS就是redhat的免费服务器版本,这么说大家应该都了解了吧。现在就详细的给大家介绍一下CentOS这个发行版的概况和FAQ吧。在众多免费 Linux 发行版中,CentOS 是为数不多的可以作为商业应用而被使用的发行版 ,这一切都源于她的特殊。而我们能够无偿享用 CentOS 这比具备商业应用特征的资源,也正是因为
阅读全文
摘要:1. Hadoop安装部署1.1. 机器说明总共4台机器:test161.sqa,test162.sqa, test163.sqa,test164.sqaIP地址分别为:192.168.207.161 …… 192.168.207.164操作系统:Redhat Linuxroot用户密码:hello123test161.sqa(192.168.207.161)作为namenode(master),其他的作为datanode(slave)1.2. 用机器名ping通机器用root用户登录。在namenode和各个slave上用机器名互相ping,ping不通的话,修改/etc/hosts文件,加
阅读全文
摘要:http://www.searchtb.com/2011/01/understanding-hbase.htmlHBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来
阅读全文
摘要:参考:http://hadoop.apache.org/common/docs/r0.18.2/cn/quickstart.htmlHadoop快速入门目的先决条件支持平台所需软件安装软件下载运行Hadoop集群的准备工作单机模式的操作方法伪分布式模式的操作方法配置免密码ssh设置执行完全分布式模式的操作方法目的这篇文档的目的是帮助你快速完成单机上的Hadoop安装与使用以便你对Hadoop分布式文件系统(HDFS)和Map-Reduce框架有所体会,比如在HDFS上运行示例程序或简单作业等。先决条件支持平台 GNU/Linux是产品开发和运行的平台。 Hadoop已在有2000个节点的GNU
阅读全文
摘要:下载:(迅雷下载,复制下面的链接即可)thunder://QUFodHRwOi8vNS5qeGR4MS5jcnNreS5jb20vc29mdHdhcmUvdm13YXJlXzY1Mi5yYXJaWg==注册码(测试可用):40800-AM96P-P2HDA-4PTNK
阅读全文
摘要:Notice: unserialize() : Error at offset 159 of 647 bytes in ***我们往往会在将serialize后的数据unserialize,但是反序列化的时候往往会出现如上所示的错误这个错误往往是由于存储序列化信息的*.txt的编码格式的问题导致的。而且这个问题在UTF-8中经常出现,如果改成其他的ANSI的编码格式,这样的问题也就解决了总结:改变*.txt的编码格式
阅读全文