自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

climbs的专栏

勤于记录 三省吾身

  • 博客(84)
  • 收藏
  • 关注

转载 标记语言YAML入门

YAML是『YAML Ain't Markup Language』的缩写,又一个递回式缩写的例子。发音是『Camel』,也就是英文骆驼的发音。通常,我们看到xxML的标准,都会想到这是不是又一个所谓的Markup Language。刚好相反,正如其名称所显示的,YAML是与Markup Language相反,他是要使用不同的方式来表示Markup Language所能够做到的功能。简单的说,YAM

2013-10-31 23:59:36 1228

原创 Apache性能优化---全面篇

配置网站,要充分的把系统资源利用出去,榨干系统的一切潜能,让网站速度发挥到极致。Apache,是用户浏览和网站数据的一个中间桥梁。但是在这里,我们虽然做得并不是很多,但是如果心细打理,有些设置也会起到立竿见影的效果。1、安装Apache的时候,要正确选择MPM要想让Apache的性能最好,那么第一步要做到的是:选择合适的MPM。Apache有3个MPM,它们分别是:even

2013-10-30 23:12:44 2354

转载 Apache的KeepAlive设置与优化

在说apache的keepalive之前,我们需要对web数据的加载过程有些简单的了解这里先介绍一个测试网站加载工具:Pingdom Tools ,在这个工具中,我们输入一个网址来测试下加载速度,同时最重要的是观察加载过程:其中每块的含义是:黄色是http的启动时间,绿色是http请求的链接时间,蓝色是加载时间;从这个结果图中,我们可以看到:1)所有的请求,这里指的是htt

2013-10-30 22:55:14 2903

原创 apache负截低,但是访问很慢,MaxClients设置太小的原因

1. 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块)MPM是Apache的核心,它的作用是管理网络连接、调度请求。Apache2.0中MPM分为3种(perfork、worker、event)。perfork从Apache1.3中继承下来的,它采用的是进程管 理方式,所以它可以提供更可靠的性能和更好的兼容性;worker是Apache

2013-10-30 22:21:36 965

转载 PHP "Easter Egg"

转自:http://www.0php.com/php_easter_egg.phpIf you add the code "?=PHPE9568F36-D428-11d2-A769-00AA001ACF42" (without quotes) to the end of any URL that is a PHP page, you will see a funny picture on

2013-10-30 20:34:30 1296

转载 Apache运行机制剖析

Apache运行机制剖析:1. B/S交互过程浏览器(Browser)和服务器(Web Server)的交互过程: 1、  浏览器向服务器发出HTTP请求(Request)。2、  服务器收到浏览器的请求数据,经过分析处理,向浏览器输出响应数据(Response)。3、  浏览器收到服务器的响应数据,经过分析处理,将最终结果显

2013-10-30 19:31:57 832

原创 apache错误

1.Apache站点下载大文件不完整原因及解决办法今天在本地测试一个JQuery插件,但是浏览器里一直提示JQuery文件第x行缺少“}”。刚开始以为是js文件有问题,所以就从官方重新下载了一个JQuery,但还是有同样的问题,重新看了一下代码,没有发现任何问题。所以我就用火狐测试了一下,也有同样的错误。于是用FireBug看了一下HTTP请求,都是200,没有问题。但是当我查看请

2013-10-30 19:23:49 801

原创 apache基础

1.ServerTokens       默认地,服务器HTTP响应头会包含apache和php版本号。像下面的,这是有危害的,因为这会让黑客通过知道详细的版本号而发起已知该版本的漏洞攻击。1.Server: Apache/2.2.17 (Unix) PHP/5.3.5为了阻止这个,需要在httpd.conf设置ServerTokens为Prod,这会在响应头中显示“Server:Ap

2013-10-30 19:02:33 878

转载 C语言中的宏定义

1. 简单宏定义简单的宏定义有如下格式:[#define指令(简单的宏)]  #define  标识符替换列表替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录。在文件后面的内容中,不管标识符在任何位置出现,预处理器都会用替换列表代替它。

2013-10-30 13:02:10 985

原创 unix编程基础知识

1.EINTRlinux中函数的返回状态,在不同的函数中意义不同write表示:由于信号中断,没写成功任何数据。The call was interrupted by a signal before any data was written.3read表示:由于信号中断,没读到任何数据。The call was interrupted by a signal befor

2013-10-27 15:10:08 804

原创 僵死进程和孤儿进程

什么是僵死进程?我们知道,在Unix进程模型中,进程是按照父进程产生子进程,子进程产生子子进程这样的方式创建出完成各项相互协作功能的进程的。当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。如果父进程没有这么做的话,会产生什么后果呢?此时,子进程虽然已经退出了,但是在系统进程表中还为它保留了一些退出状态的信息,如果父进程一...

2013-10-27 14:51:16 695

原创 内核基础

轻量级进程如果内核要对线程进行调度,那么线程必须像进程那样在内核中对应一个数据结构。进程在内核中有相应的进程描述符,即task_struct结构。事实上,从Linux内核的角度而言,并不存在线程这个概念。内核对线程并没有设立特别的数据结构,而是与进程一样使用task_struct结构进行描述。也就是说线程在内核中也是以一个进程而存在的,只不过它比较特殊,它和同类的进程共享某些资源,比如

2013-10-24 11:43:57 683

转载 Linux slab 分配器剖析

简介: 良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux® 内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab 分配器背后所采用的思想,并介绍这种方法提供的接口和用法。动态内存

2013-10-23 20:08:44 585

原创 ab高级进阶

ab命令:ab命令可以将一长串字符用缩写来定义,这有点象Linux中的alias,比如Linux中的ll命令就是ls -l的别名,ab的语法为::ab abbr phraseabbr就是对phrase的简写,在insert 模式中,输入abbr,再按非字母字符(比如空格,点号等)Vim就自动把phrase插入到光标处位置。此情景一般用在频繁输入的字符中,通常建议abbr选

2013-10-20 10:15:19 894

原创 vim寄存器和变量类型

一:官方帮助手册:help registers:help :registers二: 寄存器分类1.无名(unnamed)寄存器:"",缓存最后一次操作内容;2.数字(numbered)寄存器:"0 ~ "9,缓存最近操作内容,复制与删除有别, "0寄存器缓存最近一次复制的内容,"1-"9缓存最近9次删除内容3.行内删除(small delete)

2013-10-19 20:29:45 1214

原创 vim中执行shell

vim中执行shell命令,有以下几种形式1):!command不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容例如:!ls -l特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim2):r !command将shell命令command的结果插入到当前行的下一行例如

2013-10-19 16:18:04 835

原创 求二叉树高度

因为树是递归定义的,所以用递归算法很方便。[cpp] view plaincopyprint?#define _CRT_SECURE_NO_WARNINGS  #include   #include   using namespace std;    struct Node {      char data;      N

2013-10-10 12:10:38 1011

原创 线程和进程

进程的目的是为了提高程序并发执行,以提高资源利用率和系统吞吐量。那么操作系统中引入线程的目的,则是为了减少进程并发执行过程中所付出的时空开销,使操作系统能很好的并发执行。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.  线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥

2013-10-09 23:32:27 741

原创 面试基础

1.面向对象和面向过程有什么区别?    面向过程将程序分为两部分:数据和操作。这种思想的核心是数据结构和算法的开发和优化,面向过程需要分析解决问题所需要的步骤,然后用函数将这些步骤一步步实现,使用的时候一个个调用。   面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。面向对象一个很大的好处就是数据 和方

2013-10-09 22:57:36 866

原创 树基础

1.求树的高度void High(Node *T, int &h) { if (T == NULL) h = 0; else { int left_h; High(T->lchild, left_h); int right_h; High(T->rchild, rig

2013-10-09 20:40:20 670

原创 c++基础

1.struct关键字struct Movie/*可以指定类型名也可以不指定*/{ //成员都是public的 int ID; string Name;} movie; //可以在声明struct的时候声明一个struct实例,这个有啥意思呢? int main(){ //movie变量在Movie结构声明处定义了 movie.ID =

2013-10-09 19:52:37 821

原创 typedef struct 用法详解

当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?typedef struct pNode{ char *pItem; pNode pNext;} *pNodewhy?typedef struct tagMyStruct{  int iNum; long lLength;} MyStruct;这语句实际上完成两个操作:1) 定义

2013-10-09 19:46:09 1265 1

原创 php文件上传

1.如果是ftp服务器,可以用php自带的ftp命令上传:<?php$file = 'somefile.txt';$remote_file = 'readme.txt';// set up basic connection$conn_id = ftp_connect($ftp_server);// login with username and password$login_r

2013-10-08 17:14:07 692

原创 php断点续传

现在的很多服务器都支持断点续传去下载文件,同时很多下载软件也是断点续传,下面是PHP实现断电续传功能、代码。fname = './05e58c19552bb26b158f6621a6650899';fp = fopen(fname,'rb');fsize = filesize(fname);if (isset(_SERVER['HTTP_RANGE']) && (_SERVER

2013-10-08 17:05:32 847

原创 session基础

1.session跨机共享:php本身的session机制不能跨机,这给多服务器,1)使用数据库来实现2)使用memcached来保存3)自己写server端,通过改写session处理函数来请求4)使用nfs等跨机存储来保存session2.系统中二级域名下貌似还是无法取$_SESSION?session.use_cookies设置为1,当然默认情况下也是设置

2013-10-08 13:03:54 712

原创 无限分类

实现方式: 数据+类实现1.数据源:     如果菜单分级不多,可以直接写到配置文件中.     数据量非常大,用数据库.2.写一个menu类来实现.

2013-10-08 12:56:43 654

原创 session写入memcache

1.通过memecache扩展    配置:    session.save_handler = memcache    session.save_path = "tcp://host:port"   phpinfo中变量值:    Registered save handlers   files user sqlite memcache   测试2)test1

2013-10-08 12:45:32 949

原创 mysql基础(2)

1.replace的用法:replace into t(id, update_time) select 1, now();replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。要注意的是:插

2013-10-08 12:34:21 984

原创 把session放入mysql

session通常放在/tmp目录下,而该文件夹的权限是everbody可读,这个就非常可怕了!学校的论坛曾经就有人通过session来盗取帐号!所以后来就尝试把session放入数据库,表的结构和过程如下://创建表//create sesslib.sqlCREATE TABLE sesslib ( data text, time datetime, id int(11) DEF

2013-10-08 12:16:43 1002

原创 mysql索引基础

1.建立多列索引如何去建立一个多列索引,最重要的一个问题是如何安排列的顺序是至关重要的,比如需要对一个表里面的两个字段foo,bar建一个索引,那么索引的顺序是(foo,bar)还是(bar,foo)呢。在搞清楚如何安排顺序之前先了解一个概念,cardinality:金山的翻译是"集的势",比如,tb表有1700条记录,foo字段有750个不同的记录,那么就可以说We have a car

2013-10-07 21:13:45 781

原创 mysql join的实现原理及优化思路

join的实现原理join的实现是采用Nested Loop Join算法,就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。如果有多个join,则将前面的结果集作为循环数据,再一次作为循环条件到后一个表中查询数据。接下来通过一个三表join查询来说明mysql的Nested Loop Join的实现方式。

2013-10-07 21:13:28 878

原创 php优化

整理了一些php优化方面的东西:1. 静态方法比普通方法快;单纯方法调用普通方法比静态方法快,但调用普通方法之前需要new操作,两步操作导致调用普通方法比调用静态方法慢2. 尽量减少方法调用,特别是只有一两句而且还频繁调用的方法。一些减少方法调用的小技巧:time() -> $_SERVER[REQUEST_TIME]phpversion() ->

2013-10-07 20:30:30 744

原创 页面静态化

PHP生成静态HTML页面的方法1. 利用PHP模板生成静态页面2.使用PHP文件读写功能生成静态页面3.使用PHP输出控制函数(Output Control)生成静态页面

2013-10-07 20:19:06 790

原创 nginx基础配置

1.图片服务器配置:location ~ .*.(gif|jpg|jpeg|png|bmp|swf|css|js|html)$ {                  expires 30d;          }  #此目录的图片不缓存  location ^~ /picture/price/{  expires -2;  }  location ~*.

2013-10-07 18:45:41 925

转载 某大型网站图片服务器改造方案

1、目前网站图片服务器结构如下:2、现有结构说明2.1 mount目录说明所有前端web服务器都通过nfs挂载3台图片服务器export出来的目录,以接收web服务器PHP进程写入的图片。然后image1挂载另外两台图片服务器的export目录到本地给nginx对外提供访问。2.2 用户上传图片说明用户通过Internet访问页面提交上传请求post到web服务器,web服

2013-10-07 18:05:46 884

原创 php开发规范

1.代码第一段一定要先设定错误报告等级   error_reporting(8);// 个人建议为7 2.数组 申明$row[key] = 'value'; // 不推荐 $row = array(); // 变量一定绝对必须要先声明! $row['key'] = 'value'; $row['12'] = '34';// 数组的key一定绝对要用双引号或单引号包起来

2013-10-07 17:12:44 753

原创 mysql event

配置:[mysqld]event_scheduler = 1或者:set  global event_scheduler=1创建语句:CREATE EVENT IF NOT EXISTS event_log ON SCHEDULE EVERY 100 SECOND ON COMPLETION PRESERVE enableDO begin// sta

2013-10-07 15:21:36 768

原创 php里ezpdo orm框架初探

下载解压.....php默认内嵌sqlite3,修改config.ini:default_dsn = sqlite3://books.db我们讲解下examples/books这个项目,.在books子目录下,有两个子目录,分别是classes目录和complied目录,其中classes 子目录是放类文件的,compiled目录是放ezpdo自己生成的文件,要求该目录要有写权

2013-10-07 13:59:40 990

原创 网络基础知识

1.ECHO服务Echo服务是一种非常有用的用于调试和检测的工具。这个协议的作用也十分简单,接收到什么原封发回就是了。 基于TCP协议的Echo服务有一种Echo服务被定义为在TCP协议上的面向连接的应用。服务器就在TCP端口7检测有无消息,如果有发送来的消息直接返回就是了2.

2013-10-07 12:34:07 772

原创 Gearman 介绍

Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相 比,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片 resize功能,由于图片resize需要消耗大量计算资源,因此需要调度到后端多台服务器执行,完成任务之后返回前端再呈现到界面。通常,多语言多系统之间的集成是个大问题

2013-10-07 11:32:41 984

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除