存档

2012年1月 的存档

限制搜索引擎爬虫抓取网站内容

2012年1月17日 没有评论

搜索引擎爬虫经常抓取收录网站在通常情况下应该是有利于网站对外推广传播的,但很遗憾,一些技术比较“烂”的搜索爬虫我们甚至可以认为它们更像流氓、无赖.比如,某些爬虫本身技术就存在缺陷,结果导致一次抓取小网站的时候能把整个网站给拖垮(不要告诉我这样的事情没有发生过),另外还有像采用云服务托管的网站,比如SAE,流量和计算量都是要收费的。尼玛一个本来就没有多少流量的搜索引擎,天天过来抓内容,带来少的可怜的流量跟花去的流量费用对比,简直让人心懂,鉴于此类原因,本人做出一个艰难的决定,封杀某些搜索引擎。 阅读全文…

分类: 其他 标签: ,

嵌入式数据库SQLite介绍

2012年1月16日 没有评论

SQLite是一个非常轻量级自包含(lightweight and self-contained)的DBMS,源代码完全开放,可用于任何用途(SQLite is in the Public Domain)。它可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。

阅读全文…

分类: 其他 标签: , ,

MySQL备份工具:Percona Xtrabackup

2012年1月15日 没有评论

Percona Xtrabackup 是一个开源的MySQL热备份工具,采用GPL开源协议,支持InnoDB、XtraDB引擎在线热备份、Non-blockingd备份,流式备份,压缩备份,增量备份等特性,是商业备份工具InnoDB HotBackup的一个很好的替代品。目前Percona Xtrabackup支持InnoDB、XtraDB和MyISAM,原生MySQL以及Percona Server上的XtraDB,可运行在Linux和FreeBSD上,Windows平台目前处于测试阶段。
阅读全文…

分类: Linux, MySQL 标签: , , ,

Nginx 配置安装 Perl 支持

2012年1月14日 没有评论

本文安装环境为CentOS5.4,Nginx1.0.11

Perl以FastCGI模式安装,需要首先安装以下2个软件(CentOS自带Perl支持不做考虑)

  1. FCGI
    [code]
    #wget http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/FCGI-0.74.tar.gz
    #tar xzvf FCGI-0.74.tar.gz
    #cd FCGI-0.74
    #perl Makefile.PL
    #make
    #make install
    [/code]

阅读全文…

分类: Linux 标签: ,

详解MyISAM Key Cache

2012年1月13日 没有评论

“Cache为王”,无所不在。为了最小化磁盘I/O,MyISAM将最频繁访问的索引块(“index block”)都放在内存中,这样的内存缓冲区我们称之为Key Cache,它的大小可以通过参数key_buffer_size来控制。在MyISAM的索引文件中(MYI),连续的单元(contiguous unit)组成一个Block,Index block的大小等于该BTree索引节点的大小。Key Cache就是以Block为单位的。

1. MyISAM如何使用Key Cache

当MySQL请求(读或写)MyISAM索引文件中某个Index Block时,首先会看Key Cache队列中是否已经缓存了对应block。如果有,就直接在Key Cache队列中进行读写了,不再需要请求磁盘。如果是写请求,那么Key Cache中的对应Block就会被标记为Dirty(和磁盘不一致)。在MyISAM在Key Cache成功请求(读写)某个Block后,会将该Block放到Key Cache队列的头部。

如果Key Cache中没有待请求(读或写)的Block,MyISAM会向磁盘请求对应的Block,并将其放到Key Cache的队列头部。队列如果满了,会将队列尾部的Block删除,该Block如果是Dirty的,会将其Flush到磁盘上。我们看到MyISAM维护了一个LRU(Least Recently Used)的Key Cache队列。队列中的Dirty Block会在Block被踢出队列时Flush到磁盘上。
阅读全文…

分类: MySQL 标签: , , ,

MySQL 数据库性能优化之缓存参数优化

2012年1月12日 没有评论

数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作。而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级。所以,要优化数据库,首先第一步需要优化的就是 IO,尽可能将磁盘IO转化为内存IO。本文先从 MySQL 数据库IO相关参数(缓存参数)的角度来看看可以通过哪些参数进行IO优化阅读全文…

分类: MySQL 标签: , , , , ,

VIM制表符、缩进、空格

2012年1月11日 没有评论

对于编写代码,缩进是最基本的概念之一。至于缩进是使用空格还是制表符(Tab),或者缩进是否正好使用一个制表符来表示,很多程序员,特别是 Windows开发出身的程序员,很容易混淆。幸好,Vim对于这些概念有非常完整的支持,足以应付各种复杂的情况。以下是相关的主要Vim选项:

shiftwidth(缩进的空格数);

tabstop(制表符的宽度);

expandtab(是否在缩进和遇到Tab键时使用空格替代;使用noexpandtab取消设置);

softtabstop(软制表符宽度,设置为非零数值后使用Tab键和Backspace时光标移动的格数等于该数值,但实际插入的字符仍受tabstop和expandtab控制);

autoindent(自动缩进,即每行的缩进值与上一行相等;使用noautoindent取消设置);

cindent(使用C语言的缩进方式,根据特殊字符如”{“、”}”、”:”和语句是否结束等信息自动调整缩进;在编辑C/C 等类型文件时会自动设定;使用nocindent取消设置);

cinoptions(C语言缩进的具体方式,请参考”:help cinoptions-values”);

paste(粘贴模式,会取消所有上述选项的影响来保证后面的操作–通常是从剪贴板粘贴代码–保持原有代码的风格;使用nopaste取消设置)。

下面给出一些常用的组合:

shiftwidth=4 tabstop=4:很多Windows出身的程序员会习惯这样的设置,让缩进等于制表符宽度。

shiftwidth=4 tabstop=8:很多Unix程序员的设置,仍使用较常用的4格缩进,但制表符宽度为标准的8。

set tabstop=4

set shiftwidth=4

set softtabstop=4

set expandtab

分类: VIM 标签:

VIM工作目录下讨厌的“多余“文件

2012年1月11日 没有评论

VIM编辑文件的时候默认会在同目录下面生成一些额外的文件,常见的一般有:“filefullname.swp”、“filefullname~

*.ext.swp 文件是swap文件,通常保存有”undo/redo”历史操作和一些其他的VIM内部信息

*.ext~ 文件是备份文件,其内容包含当前文件的前一个版本

配置VIM禁止生成”.ext.swp”、”.ext~”文件:

set nobackup #no backup files

set nowritebackup #only in case you don’t want a backup file while editing

set noswapfile #no swap files

修改VIM默认存放”.ext.swp”、”.ext~”文件位置:

Linux下修改vimrc文件,添加以下代码

set backupdir=~/vimtmp

set directory=~/vimtmp

阅读全文…

分类: VIM 标签:

Web开发设计模式PRG:Post/Redirect/Get,防止重复提交表单

2012年1月10日 没有评论

Post/Redirect/Get 简称PRG,是一种用来防止表单重复提交数据的一种Web设计模式,典型的重复提交form内容的情况像用户刷新提交响应页面等可通过PRG模式来得到避免。

当一个表单通过HTTP POST被请求提交的时候,用户在服务器端返回响应期间如果刷新了响应页面,将会导致原始HTTP POST过来的内容重复提交,可能会导致一些不可预期的结果,比如重复提交数据。


阅读全文…

分类: 其他, 前端技术 标签:

YUM安装Nginx并编译安装PHP5.3.8 with PHP-FPM

2012年1月7日 没有评论

一、Nginx安装

安装Nginx可以采用YUM方法,Nginx官方提供的源可以保证安装最新版本的稳定程序

vim /etc/yum.repos.d/CentOS-Base.repo 添加以下YUM源信息

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

enabled=1

更新YUM缓存

yum makecache

安装Nginx

yum install nginx

控制Nginx运行:

通过YUM安装完毕Nginx后可以使用service命令管理,目前支持以下参数

service nginx {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest} 阅读全文…

分类: Linux, PHP 标签: