IT星球论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 216|回复: 0

memcacheq的安装、配置、使用

[复制链接]

1997

主题

1

好友

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

优秀会员 助人为乐 辛勤工作 技术精英 多才多艺 优秀班竹 灌水天才 星球管理 宣传大使 灌水之王 财富勋章 版主勋章 动漫勋章 勤奋会员 论坛精英 PS高手 心 8 闪游皮肤 双鱼座 8★8➹ 志愿者 乖

发表于 2016-1-9 15:24:30 |显示全部楼层
memcacheq的安装、配置、使用
说到memcacheq,大家可能会想到memcached。不错,memcacheq是在memcached的基础上开发的,保留了memcached的高效,又加入了BerkeleyDB作为持久化方案,因此,memcacheq是一个不错的持久化队列服务软件。
特性:
安装比较简单
使用简单
速度快
并发高

1、安装前准备工作
要安装memcacheq,需要先安装libeventBerkeleyDB
a、安装libevent
wget --no-check-certificate https://github.com/downloads/lib ... .0.21-stable.tar.gz
tar zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure
make
make install


b、安装BerkeleyDB
wget http://download.oracle.com/otn/berkeley-db/db-5.3.21.tar.gz
tar zxvf db-5.3.21.tar.gz
cd db-5.3.21
cd build_Unix
../dist/configure
make
make install



在/etc/ld.so.conf里加入下面两行
/usr/local/lib
/usr/local/BerkeleyDB.5.3/lib


运行ldconfig

2、安装memcacheq
wget http://memcacheq.googlecode.com/files/memcacheq-0.2.0.tar.gz
tar zxvf memcacheq-0.2.0.tar.gz
cd memcacheq-0.2.0
./configure --enable-threads --with-libevent=/usr/local --with-bdb=/usr/local/BerkeleyDB.5.3
make
make install



3、配置memcacheq
install -d -o nobody -g nobody /data/memcacheq
memcacheq -d -r -u nobody -H /data/memcacheq -N -R -v -L 1024 -B 1024 &> /var/log/mq_error.log


查看监听端口
[root@vm3 ~]# netstat -ntupl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address        Foreign Address        State                PID/Program name
tcp        0                0        :::22                        :::*                        LISTEN        3162/sshd
tcp        0                0        :::22201                :::*                        LISTEN        25375/memcacheq
udp        0                0        0.0.0.0:22201        0.0.0.0:*                                25375/memcacheq




4、使用
a、使用PHP语言的memcache扩展作为客户端测试
本例使用的是php源码编译安装
安装php扩展memcache
wget http://pecl.php.net/get/memcache-2.2.7.tgz
tar zxvf memcache-2.2.7.tgz
cd memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install


在/usr/local/php/lib/php.ini里编辑或添加如下两行
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension=memcache.so


重启php-fpm
service php-fpm restart

验证memcache扩展是否加载

ok,加载成功
编写php测试文件:
<?php
$m = new memcache();
$m->connect('192.168.18.240',22201);
$m->set('mailq','zhangsan');
$m->set('mailq','lisi');
$m->set('mailq','wangwu');
print '------push bellow into mailq queue------<br>';
print 'zhangsan<br>';
print 'lisi<br>';
print 'wangwu<br>';
print '------get mailq from mailq queue------<br>';
print 'first:'.$m->get('mailq').'<br>';
print 'second:'.$m->get('mailq').'<br>';
print 'third:'.$m->get('mailq').'<br>';
print 'fourth:'.$m->get('mailq');
$m->close();


下面是上面php代码运行结果:
------push bellow into mailq queue------
zhangsan
lisi
wangwu
------get mailq from mailq queue------
first:zhangsan
second:lisi
third:wangwu
fourth:

可以发现,我们先存入的将先取出,符合先进先出原则 FIFO
b、使用telnet作为客户端测试
telnet 192.168.18.240 22201
Trying 192.168.18.240...
Connected to localhost (192.168.18.240).
Escape character is '^]'.


只有2个命令用来操作队列:
set
get
命令语法:
添加一个消息到队列末尾
set <queue name> <flags> 0 <message_len>\r\n
<put your message body here>\r\n
STORED\r\n


注意:如果你的队列不存在,MQ将自动创建一个新队列。原来的'expire time'字段被服务器忽略。

从队列头部取一个消息
get <queue name>\r\n
VALUE <queue name> <flags> <message_len>\r\n
<your message body will come here>\r\n
END\r\n




set例子:
set mailq 0 0 8
zhangsan
STORED
set mailq 0 0 4
lisi
STORED
set mailq 0 0 6
wangwu
STORED


get例子:
get mailq
VALUE mailq 0 8
zhangsan
END


使用'stats queue'查看你的当前队列:
stats queue
STAT mailq 3/1
END


删除一个队列:
delete mailq
DELETED


使用db_stat命令查看一个队列有多少记录:
/usr/local/BerkeleyDB.5.3/bin/db_stat -d mailq
Fri Feb    8 01:26:29 2013                Local time
42253     Queue magic number
4             Queue version number
1024        Fixed-length record size
0x20        Fixed-length record pad
4096        Underlying database page size
16384     Underlying database extent size
2             Number of records in the database
2             Number of data items in the database
1             Number of database pages
1024        Number of bytes free in database pages (75% ff)
2             First undeleted record
4             Next available record number


部署完毕。

http://haoyun.blog.51cto.com/2038762/1133345
memcacheq的安装、配置、使用
该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

回顶部