分类: LINUX
2010-07-26 15:07:42
现在很多网站在注册时都会生成一个唯一的流水号来标识用户的身份,流水号对于用户来讲类似一个身份证号代表用户在网站的唯一标识,而对于程序和数据库而言,流水号可以做hash,将用户平分到多个库多个表上,在一定量级的网站可以提高用户访问速度,同时在一个库出现问题时,将对用户影响降低到最低点。
各网站生成流水号的方式不同,有的用mysql的uid自增长,有的用c程序来做,各有利弊,而我们采用的时php+memcacheq的方式来做多点发送唯一号的方式,这样在一个节点出现问题时,可以立刻切换到另一节点,起到冗余总用,同时还可以跳过一些保留号段。
|
一.以下为memcacheq的安装方式,以下内容取自网络
1. 安装bdb-4.7.25 (如果已经装过就不用再装了)
下载地址:
(最好使用这个版本,使用其它版本你可能会遇到不必要的麻烦)
$tar xvzf db-4.7.25.tar.gz
$cd db-4.7.25/
$cd build_unix/
$../dist/configure
$make
$sudo make install
添加下面两行到 /etc/ld.so.conf
/usr/local/lib
/usr/local/BerkeleyDB.4.7/lib
执行 ldconfig
2. 安装 libevent-1.4.x (如果已经装过就不用再装了)
下载地址:
$tar xvzf libevent-1.4.x-stable.tar.gz
$cd libevent-1.4.x-stable
$./configure
$make
$sudo make install
3. 安装memcacheq
下载地址:
(我们使用的是 memcacheq-0.2.0 )
$tar xvzf memcacheq-0.2.x.tar.gz
$cd memcacheq-0.2.x
$./configure --enable-threads
$make
$sudo make install
4. 配置
创建数据目录
mkdir -m 777 /data2/memcacheq
5. 启动memcacheq
memcacheq -u web -d -r -H /data2/memcacheq -N
(如果你愿意的话,可以添加 -l 选项,只监听内网网卡)
6. 后续工作
a. 你可能需要把启动memcacheq的命令写到rc.local里面
二. php 来发号以下为目录结构
.
|-- alarm 监控程序
|-- conf 配置文件
|-- lock 临时文件
| |-- pid.lock
| `-- uid.lock
|-- logs 日志
|-- memcacheq memcacheq
`-- script 程序
以上程序打包在附件中,但是是一个简化版,意在给有需要的朋友
提供更多的思路。