MemcacheQ队列服务安装

依赖关系
部署MemcacheQ之前,请确保以下软件包已安装:
安装BerkekeyDB:
Berkeley DB 4.7或更高版本
从<http://www.oracle.com/database/berkeley-db/db/index.html 下载>

wget http://download.oracle.com/otn/berkeley-db/db-6.0.20.tar.gz
tar -zxvf db-6.0.20.tar.gz
cd db-6.0.20/
cd build_unix/
../dist/configure --prefix=/usr/local/berkeleyDB
make && make install

打开/etc/ld.so.conf文件添加如下两行:

vi /etc/ld.so.conf
/usr/local/lib
/usr/local/BerkeleyDB/lib

然后,运行“ldconfig”。
注意FREEBSD下没有id.so.conf可以加入到环境变量中:

vi /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/BerkeleyDB/lib

安装libevent:
libevent 1.4.X或更高版本
从< http://monkey.org/~provos/libevent/ 下载 >

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar -zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable/
./configure --prefix=/usr/local/libevent
make & make install

安装MemcacheQ:
从< http://code.google.com/p/memcacheq/downloads/list 下载 >

wget https://memcacheq.googlecode.com/files/memcacheq-0.2.0.tar.gz
tar xvzf memcacheq-0.2.0.tar.gz
cd memcacheq-0.2.0/
./configure --with-bdb=/usr/local/berkeleyDB --with-libevent=/usr/local/libevent --enable-threads
make && make install

测试是否安装成功:

/usr/local/memcacheq/bin/memcacheq -h

启动守护进程
例如:

/usr/local/memcacheq/bin/memcacheq -d -r -uroot -p11212 -H /cloud/memcacheq/data -N -R -v -L 1024 -B 1024 > /cloud/memcacheq/logs/error.log 2>&1

(普通用户不用加)-u root
注意:由于MemcacheQ使用固定长度的存储,所以您应该使用“- b”选项来指定您的消息的最大长度。 默认是1024个字节。 任何消息,短于指定的长度会用“0 x20”,填补空格字符。 消息包含字节:

<your queue name bytes> + <message metadata(9 ~ 20+ bytes)> + <your message body bytes>
使用“- h”选项来查看更多的配置。

检查是否启动成功:

ps -ef |grep memcacheq

如果看到类似:root 11908 1 4 18:06 ? 00:00:00 /usr/local/memcacheq/bin/memcacheq -d -r -uroot -p11212 -H /cloud/memcacheq/data -N -R -v -L 1024 -B 1024
则已经开始运行 .

增加到开机启动
在 /etc/rc.d/init.d下创建文件memcacheq并写入以下内容:

# chkconfig: 345 60 60
# description: The memcacheq daemon is a network queue service.
# processname: memcacheq
#!/bin/sh

# Source function library.
. /etc/rc.d/init.d/functions

PORT=11212
USER=root
OPTIONS="-N -R -v -L 1024 -B 1024 > /cloud/memcacheq/logs/error.log 2>&1"
CACHE_HOME=/usr/local/memcacheq/bin
DATA_HOME=/cloud/memcacheq/data
# Check that networking is up.
if [ "$NETWORKING" = "no" ]
then
 exit 0
fi

RETVAL=0
prog="memcacheq"

start () {
 echo -n $"Starting $prog: "
 # insure that /var/run/memcacheq has proper permissions
 chown $USER $CACHE_HOME/memcacheq
 daemon $CACHE_HOME/memcacheq -d -r -p $PORT -u $USER -H $DATA_HOME -P $CACHE_HOME/memcached.pid $OPTIONS
 RETVAL=$?
 echo
 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcacheq
}
stop () {
 echo -n $"Stopping $prog: "
 killproc memcacheq
 RETVAL=$?
 echo
 if [ $RETVAL -eq 0 ] ; then
 rm -f /var/lock/subsys/memcacheq
 rm -f /var/run/memcacheq.pid
 fi
}

restart () {
 stop
 start
}
# See how we were called.
case "$1" in
 start)
 start
 ;;
 stop)
 stop
 ;;
 status)
 status memcached
 ;;
 restart|reload)
 restart
 ;;
 condrestart)
 [ -f /var/lock/subsys/memcacheq ] && restart || :
 ;;
 *)
 echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
 exit 1
esac

exit $?

接着执行

chmod +x /etc/init.d/memcacheq
chkconfig --level 345 memcacheq on
service memcacheq start 
service memcacheq stop

玩得开心:)

未经允许不得转载:SuperMan's blog » MemcacheQ队列服务安装

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址