中国网管论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

网管赚钱丨推荐设2345主页游戏攻略/CS/LOL/DNFLinux常用命令大全云计算/云技术频道
IP地址在线计算器网管软件,网管工具论坛积分购买 
查看: 526|回复: 0

[分享交流] Linux教程之持久化消息队列memcacheq的安装配置

[复制链接]
发表于 2017-5-28 00:59:34 | 显示全部楼层 |阅读模式
Linux教程之持久化消息队列memcacheq的安装配置
兄/弟连教育Linux培训教程分享:兄/弟连云计算培训(赵老师~连‘系电-话:17710—11—6169)

持久化消息队列memcacheq的安装配置
一.memcacheq介绍
特性:
1.简单易用
2.处理速度快
3.多条队列
4.并发性能好
5.与memcache的协议兼容
6.在zendframework中使用方便

memcacheq依赖于Berkeley DB和libevent。Berkeley DB用于持久化存储队列的数据,避免在memcacheq崩溃或这服务器当掉时候,不至于数据丢失。
二.安装BerkeleyDB
download url: http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html
# tarzxvf db-5.2.28.tar.gz -C ../software/
# cd ../software/db-5.2.28/
# cdbuild_unix/
#../dist/configure --prefix=/usr/local/db-5.2.28
# make
# makeinstall
  
三.安装libevent
  
# wgethttp://monkey.org/~provos/libevent-2.0.12-stable.tar.gz
# tarzxvf libevent-2.0.12-stable.tar.gz -C ../software/
# cd../software/libevent-2.0.12-stable/
#./configure --prefix=/usr/local/libevent-2.0.12
# make
# makeinstall
  
四.安装memcacheq
# wgethttp://memcacheq.googlecode.com/files/memcacheq-0.2.0.tar.gz
# tarzxvf memcacheq-0.2.0.tar.gz -C ../software/
# cd ../software/memcacheq-0.2.0/
#./configure --prefix=/usr/local/memcacheq-0.2.0--with-libevent=/usr/local/libevent-2.0.12 --with-bdb=/usr/local/db-5.2.28--enable-threads
# make
# makeinstall
  
五.启动memcacheq
# chownnobody:root /memdata
#./memcacheq -d -r -u nobody -vv -t 4 -m 64 -H /memdata -N -R >/var/log/memq.log 2>%261
  
-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 is4096, (512B ~ 64KB, power-of-two)
-H <dir> 数据库家目录, default is'/data1/memcacheq'
-L <num> 日志缓冲区大小, default is32KB
-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> 多少毫秒做一次死锁检测(deadlockdetecting), 0 for disable, default is 100ms
-N 开启DB_TXN_NOSYNC获得巨大的性能改善, default is off
-R 自动删除不再需要的日志文件, default is off
六.常见错误:
./memcacheq: error while loading shared libraries: libdb-5.2.so:cannot open shared object file: No such file or directory
./memcacheq: error while loading shared libraries:libevent-2.0.so.5: cannot open shared object file: No such file or directory
解决办法:
# cd/etc/ld.so.conf.d/
# vimberkeley-db.conf
/usr/local/db-5.2.28/lib
# vimlibevent.conf
/usr/local/libevent-2.0.12/lib
#ldconfig
  
七.测试
set<queue name> <flags> 0 <message_len>rn
<putyour message body here>rn
STOREDrn
get<queue name>rn
VALUE<queue name> <flags> <message_len>rn
<yourmessage body will come here>rn
ENDrn
# telnet127.0.0.1 22201
Trying127.0.0.1...
Connectedto 127.0.0.1.
Escapecharacter is '^]'.
setqueue1 0 0 2
xu
STORED
setqueue1 0 0 4
hong
STORED
setqueue1 0 0 2
hu
STORED
statsqueue
STATqueue1 3/0 //队列queue1中共有3条消息已取出0条
END
getqueue1
VALUEqueue1 0 2
xu
END
statsqueue
STATqueue1 3/1 //队列queue1中共有3条消息已取出1条
END
deletequeue1 //删除队列queue1
DELETED
statsqueue
END兄/弟连云计算培训(赵老师~连‘系电-话:17710—11—6169)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

2345

QQ|小黑屋|手机版|Archiver|网管之家 ( 沪ICP备08026629号 ) 

GMT+8, 2017-8-21 03:16

Powered by Discuz! X3.1

© 1999-2014 bitsCN.com

快速回复 返回顶部 返回列表