subversion 的 svnadmin 命令帮助手册

create: 用法: svnadmin create REPOS_PATH

在 REPOS_PATH 创建一个新的空版本库。

有效选项:
–bdb-txn-nosync         : 在提交事务时禁用fsync [BDB]
–bdb-log-keep           : 禁用自动删除日志文件 [BDB]
–config-dir ARG         : 从目录 ARG 读取用户配置文件
–fs-type ARG            : 版本库类型: “fsfs”(默认)或“bdb”
–pre-1.4-compatible     : 使用与1.4之前版本兼容的格式[……]

继续阅读

利用PHP操作Linux消息队列完成进程间通信

当我们开发的系统需要使用多进程方式运行时,进程间通信便成了至关重要的环节。消息队列(message queue)是Linux系统进程间通信的一种方式。

关于Linux系统进程通信的概念及实现可查看:http://www.ibm.com/developerworks/cn/linux/l-ipc/
关于Linux系统消息队列的概念及实现可查看:http://www.ibm.com/developerworks/cn/linux/l-ipc/part3/

PHP的sysvmsg模块是对Linux系统支持的System V IPC中的System V消息队列函数族的封装。我们需要利用sysvms[……]

继续阅读

nginx + php 产生大量 TIME_WAIT

一、TIME_WAIT产生原因:
1、nginx现有的负载均衡模块实现php fastcgi负载均衡,nginx使用了短连接方式,所以会造成大量处于TIME_WAIT状态的连接。
2、TCP/IP设计者本来是这么设计的
主要有两个原因
(1) 防止上一次连接中的包,迷路后重新出现,影响新连接
(经过2MSL,上一次连接中所有的重复包都会消失)
(2) 可靠的关闭TCP连接
在主动关闭方发送的最后一个 ack(fin) ,有可能丢失,这时被动方会重新发fin, 如果这时主动方处于 CLOSED 状态 ,就会响应 rst 而不是 ack。所以主动方要处于 TIME_WAIT 状态,而不能是 CLO[……]

继续阅读

浅谈PHP代码设计结构[转自淘宝-一淘团队博文]

coding多年,各种代码日夜相伴,如何跟代码友好的相处,不光成为职业生涯的一种回应,也是编写者功力的直接显露。

如何看待程序和代码呢?

那就让我们从程序定义来谈起,

如果从业务最终呈现来看,一个程序可以看成是一个真实业务需求的逻辑代码映射。

如果从程序逻辑结构看,程序就是数据结构加算法的结合。

这样看,为满足更多的业务需求,更好的满足这些需求,就需要更多的程序代码,

当程序代码堆积达到一定数量后,如何管理好,整理好已有的代码将会成为一个只管重要的问题。这个也是一个程序员编程3~5后,从中级向更高级别探索的一个瓶颈。

满足需要可工作的代码是好的,可被多个需求不断复用的代码,就是更[……]

继续阅读

基于第三方KV存储的 PHP 版本消息队列实现

消息队列使用非常广泛,在缓解高并发情况时有相当好的作用,本文提供 PHP 版本消息队列的实现

相比其它消息队列有以下优点:

1.采用 PHP 编写,使用方便,可根据需求自行修改,代码一目了然;

2.支持memcache,tokyocabinet,redis,google的kv缓存服务等KV存储;

3.无需要安装,可控性强。

本文旨在帮助大家了解队列(先进先出)的实现方法。实现如下:

<?php
/**
*
* 基于第三方KV存储的消息队列
*
* the last known user to change this file in the repository <$Las[......]

继续阅读

数据库水平切分方法

在大中型项目中,在数据库设计的时候,考虑到数据库最大承受数据量,通常会把数据库或者数据表水平切分,以降低单个库,单个表的压力。我这里介绍两 个我们项目中常用的数据表切分方法。当然这些方法都是在程序中使用一定的技巧来路由到具体的表的。首先我们要确认根据什么来水平切分?在我们的系统 (SNS)中,用户的UID贯穿系统,唯一自增长,根据这个字段分表,再好不过。

方法一:使用MD5哈希

做法是对UID进行md5加密,然后取前几位(我们这里取前两位),然后就可以将不同的UID哈希到不同的用户表(user_xx)中了。

function getTable( $uid ){
$ext = substr[......]

继续阅读

js urlencode,encodeURIComponent

js 对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如:<script language=”javascript”>document.write(‘<a href=”http://passport.baidu.com/?logout&aid=7& u=’+encodeURIComponent(“http:/[……]

继续阅读

Subversion 基于 Apache 使用时用户权限的管理配置

一、Subversion 的两种使用方式:
1、Apache 站点方式;
2、本地命令行方式。
当然,我们可以通过客户端来进行访问,但那也必须先建立在上述两种访问接口。

二、Apache 方式的配置
首先我们需要安装 Apache 服务器程序,同时需要安装两个模块:mod_dav_svn 以及 mod_authz_svn。他们可以在 Subversion 的站点上找到,window 和 centos 平台 Subversion 的具体安装可以参照我之前的文章。将所有需要的模块安装之后,我们必须编辑 Apache 的配置文档,让其将我们要用的模块装载。一般来说,Apache 的配置文件是 ht[……]

继续阅读