一.MemcacheQ安装记录
1.安装libevent
查看是否已经安装了libevent
rpm -qa|grep libevent
如果没有安装
使用yum安装
yum install libevent libevent-devel
2.安装
BerkeleyDB
下载db-5.3.21.zip
解压
cd db-5.3.15
cd build_unix
../dist/configure --prefix=/usr/local/berkeleyDB
make && make install
在安装之后,需要做以下操作,才能保证安装memcacheq成功
编辑 /etc/ld.so.conf
增加以下内容:
/usr/local/libevent/lib
/usr/local/berkeleyDB/lib
并运行以下命令;
/sbin/ldconfig
3.MemcacheQ
下载memcacheq-0.2.0.zip
解压
./configure --prefix=/usr/local/memcacheq --enable-threads
make && make install
二.memcacheq启动
1.启动
/usr/local/memcacheq/bin/memcacheq -d -r -uroot -p11212 -H /var/memcacheq/data -l 127.0.0.1 -N -R -v -L 1024 -B 1024 >
/var/memcacheq/logs/mq_error.log 2>&1
/var/mcq/data 必须自己创建
检查是否启动成功:
ps -ef |grep memcacheq
2.开机启动
编辑 /etc/rc.local
增加以下内容:
/usr/local/memcacheq/bin/memcacheq -d -r -uroot -p11212 -H /var/memcacheq/data -l 127.0.0.1 -N -R -v -L 1024 -B 1024 >
/var/memcacheq/logs/mq_error.log 2>&1
3.memcacheq各启动参数解释
-p <num> TCP监听端口(default: 22201)
-U <num> UDP监听端口(default: 0, off)
-s <file> unix socket路径(不支持网络)
-a <mask> unix socket访问掩码(default 0700)
-l <ip_addr> 监听网卡
-d 守护进程
-r 最大化核心文件限制
-u <username> 以用户身份运行(only when run as root)
-c <num> 最大并发连接数(default is 1024)
-v 详细输出 (print errors/warnings while in event loop)
-vv 更详细的输出 (also print client commands/reponses)
-i 打印许可证信息
-P <file> PID文件
-t <num> 线程数(default 4)
--------------------BerkeleyDB Options-------------------------------
-m <num> BerkeleyDB内存缓存大小, default is 64MB
-A <num> 底层页面大小, default is 4096, (512B ~ 64KB, power-of-two)
-H <dir> 数据库家目录, default is '/data1/memcacheq'
-L <num> 日志缓冲区大小, default is 32KB
-C <num> 多少秒checkpoint一次, 0 for disable, default is 5 minutes
-T <num> 多少秒memp_trickle一次, 0 for disable, default is 30 seconds
-S <num> 多少秒queue stats dump一次, 0 for disable, default is 30 seconds
-e <num> 达到缓存百分之多少需要刷新, default is 60%
-E <num> 一个单一的DB文件有多少页, default is 16*1024, 0 for disable
-B <num> 指定消息体的长度,单位字节, default is 1024
-D <num> 多少毫秒做一次死锁检测(deadlock detecting), 0 for disable, default is 100ms
-N 开启DB_TXN_NOSYNC获得巨大的性能改善, default is off
-R 自动删除不再需要的日志文件, default is off
4.memcacheq关闭:
ps -ef |grep memcacheq查找出pid
kill -9 pid
三.memcacheq的php使用示例
<?php
header("content-type:text/html;charset=utf-8");
$q = new memcache();
$q->addServer('127.0.0.1','12202');
$q->setCompressThreshold(1024,0.3);
if(isset($_POST['content'])) {
echo "bytes ", strlen($_POST['content']);
if(!$q->set('post', $_POST['content'] )) {
echo "set failed";
}
}
if(isset($_GET['get'])) {
print_r($q->get('post'));
$q->close();
exit;
}
$q->close();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>写放数据</title>
</head>
<body>
<form action="?" method="post">
输入内容<br />
<textarea name="content" cols="40" rows="10"></textarea>
<input type="submit" value="submit" />
</form>
</body>
</html>