亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Linux > 正文

解析linux下安裝memcacheq(mcq)全過程筆記

2020-03-22 19:47:32
字體:
來源:轉載
供稿:網友
memcacheQ是一個單純的分布式消息隊列服務。
一,MEMCACHEQ的應用背景
Web應用中為什
么會需要消息隊列?主要原因是由于在高并發環境下,由于來不及同步處理,請求往往會發生堵塞,比如說,大量的insert,update之類的請求同時到達mysql,直接導致無數的行鎖表鎖,甚至最后請求會堆積過多,從而觸發too manyconnections錯誤。通過使用消息隊列,我們可以異步處理請求,從而緩解系統的壓力。在Web2.0的時代,高并發的情況越來越常見,從而使消息隊列有成為居家必備的趨勢,相應的也涌現出了很多實現方案,像Twitter以前就使用RabbitMQ實現消息隊列服務,現在又轉而使用Kestrel來實現消息隊列服務,此外還有很多其他的選擇,比如說:ActiveMQ,ZeroMQ等。

上述消息隊列的軟件中,大多為了實現AMQP,STOMP,XMPP之類的協議,變得極其重量級,但在很多Web應用中的實際情況是:我們只是想找到一個緩解高并發請求的解決方案,不需要雜七雜八的功能,一個輕量級的消息隊列實現方式才是我們真正需要的。二,MEMCACHEQ的特性
1 簡單易用
2 處理速度快
3 多條隊列
4 并發性能好
5 與memcache的協議兼容。這就意味著只要裝了memcache的extension就可以了,不需要額外的插件。三,安裝
MEMCACHEQ依賴于libevent和BerkleyDB。
BerkleyDB用于持久化存儲隊列的數據。 這樣在MEMCACHEQ崩潰或者服務器掛掉的時候,
不至于造成數據的丟失。這一點很重要,很重要。
它的安裝依賴于BerkeleyDB 和 libevent,所以要先安裝這BerkeleyDB和libevent:
其中libevent如果你安裝過memcached就已經安裝了,如果不確定,就檢查一下吧1. 先檢查libevent, libevent-devel是否已經安裝: rpm -qa|grep libevent 輸出中必須包含libevent, libevent-deve, 如果缺失,使用以下命令安裝:
yum install libevent yum
install libevent-devel
注意事項:libevent, libevent-devel優先使用yum安裝源,光盤鏡像中的rpm包安裝,這樣穩定性和兼容性可得到保證,網上流傳的使用源碼安裝libevent的方法會有問題,因為很可能系統已經安裝libevent, 再使用源碼安裝, 必然導致沖突,造成意外問題,所以一定要使用上述命令檢查系統是否已經安裝相應的庫2. 安裝BerkleyDB
1.tar zxvf bdb-5.3.3.tar.gz
2.cd db-5.3.3/
#需要進入特定操作系統編譯環境,更常規軟件的編譯有些區別
3.cd build_unix/
4. ../dist/configure --prefix=/usr/local/berkeleydb
#如果沒有指定特殊安裝路徑,編譯完成,需要將Berkeley Db運行庫的路徑添加到系統配置里面
echo "/usr/local/BerkeleyDB.5.3/lib/" /etc/ld.so.conf
#重載系統Ld運行庫
ldconfig
5. make & make install
記得改/etc/ld.so.conf文件,添加/usr/local/BerkeleyDB.5.3/lib啊,不然后面的mcq會安裝錯誤。
而BerkeleyDB就要去下載了
點擊下載memcacheq-0.2.0.rar
解壓,進目錄
./configure –with-bdb=/usr/local/BerkeleyDB.5.1 –with-libevent=/usr/local/lib –enable-threads
make
make install
關鍵是紅色字體那一步,一定輸入正確,不然make不通過,無法安裝下面是啟動
memcacheq -d -r -u root -p21201 -H /data/memcacheq -N -v -L 1024 -B 1024 /data/mq_error.log 2 &1
這里不推薦使用root用戶,有些帖子里說不可以,我這里測試是可以的,不過可能會不安全。
1 下面是啟動時候的參數
使用memcacheq -h 的命令來查看命令行選項
2 這個是正確的啟動memcacheq:memcacheq -d -uroot -r -p11212 -H /home/wwwroot/mcq -N -R -v -L 1024 -B 1024 /home/wwwlogs/mq_error.log 2 &1
3 這個不知道為什么就不行/usr/local/memcacheq/bin/memcacheq -d -l 127.0.0.1 -A 8192 -H /data/memcacheq -B 65535 -N -R -u root
-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
測試三、測試
1.telnet 10.218.31.121 22201
2.stats
2.stats queue
3.set q4 0 0 5
4 hello
5 get q4
6 stats queue
7 delete q4
如果set的時候補成功not_STORED的話,檢查一下你的啟動命令吧,參數沒設置好,如果你是新手,干翠多看幾個帖子,多嘗試啟動命令,換換參數,就行了四,使用
使用以上命令啟動mq后,(注意上面的-B參數表示messag的body長度不能超過1024 bytes),使用mq時只需要用到兩個命令:set和get:
set queue name flags 0 message_len /r/n
put your message body here /r/n
STORED/r/n
get queue name /r/n
VALUE queue name flags message_len /r/n
your message body will come here /r/n
END/r/n
可以看到,和memcache協議基本一致,只是把key name換成queue name,而且在set的命令中,忽略了expire_time的參數。畢竟mq的數據存儲是存在berkeleyDB中,做了持久化存儲,沒有內存的過期時間。
當使用set命令時,就向指定的消息隊列中寫入了一條新消息,也就是向BerkeleyDB中新insert了一條數據,當使用get命令時,就從 指定隊列中取出一條新消息,也就是向BerkeleyDB中delete了一條數據。當使用stats查看一個指定隊列時,可以看到這個隊列一共接收了多 少消息,其中被取出了多少條。
示例:
復制代碼 代碼如下:
fengbo@onlinegame-10-121:~$ telnet 127.0.0.1 22202
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]'.
set q4 0 0 5
hello
STORED
set q4 0 0 5
world
STORED
stats queue
STAT q4 2/0
END
get q4
VALUE q4 0 5
hello
END
stats queue
STAT q4 2/1
END

上面執行了兩次set的命令,使用stats queue查看時,可以看到q4的隊列中共有消息2條,已取出0條;當使用get取出第一條后,再此使用stats queue查看,q4中消息有2條,其中已取出1條。
PHP測試:
復制代碼 代碼如下:
session_start();
$memcache_obj = new Memcache;
$memcache_obj- connect(‘127.0.0.1′, 11212) or die (“error”);
memcache_set($memcache_obj, ‘k',10, 0, 0);
echo “queue”.memcache_get($memcache_obj, ‘k');
memcache_close($memcache_obj);

注釋
這個時候會出現這樣的問題
memcacheq: error while loading shared libraries: libdb-5.0.so: cannot open shared object file: No such file or directory
解決辦法:在/usr/lib 下建個 libdb-5.0.so 軟鏈就OK啦
ln -s /usr/local/BerkeleyDB.5.0/lib/libdb-5.0.so /usr/lib/五,關閉memcacheQ
使用ps命令查查memcacheQ的進程:ps -ef|grep wuf,然后直接將進程kill掉.
PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91人成网站www| 欧美精品电影免费在线观看| 欧美成人激情在线| 国产精品丝袜白浆摸在线| 色综合久久久久久中文网| 欧美激情在线狂野欧美精品| 九九久久久久99精品| 69久久夜色精品国产69| 欧美成人一区在线| 精品国产91久久久久久| 国产精品欧美日韩一区二区| 97国产精品视频人人做人人爱| 中文字幕久久精品| 麻豆精品精华液| 欧美日韩成人在线观看| 色多多国产成人永久免费网站| 国产精品视频免费观看www| 搡老女人一区二区三区视频tv| 亚洲电影成人av99爱色| 欧美一区第一页| 97香蕉超级碰碰久久免费软件| 国产精品久久国产精品99gif| 国产精品第二页| 国模极品一区二区三区| 国产成人97精品免费看片| 中文字幕久热精品在线视频| 国产精品极品美女在线观看免费| 欧美日韩中文字幕日韩欧美| 日韩av在线免费观看| 欧美国产高跟鞋裸体秀xxxhd| 欧美日本黄视频| 亚洲国产成人精品久久久国产成人一区| 亚洲欧美综合v| 久久久久亚洲精品成人网小说| 欧美激情高清视频| 国产精品揄拍一区二区| 91国产视频在线播放| 久久综合伊人77777尤物| 国产激情视频一区| 奇米4444一区二区三区| 亚洲自拍偷拍网址| 欧美在线视频在线播放完整版免费观看| 精品视频在线播放| 亚洲精品免费av| 日韩av在线一区二区| 成人在线视频网站| 美日韩精品视频免费看| 成人疯狂猛交xxx| 深夜福利日韩在线看| 亚洲国产精品国自产拍av秋霞| 中文字幕亚洲欧美日韩高清| 国产在线98福利播放视频| 一本一道久久a久久精品逆3p| 亚洲综合色av| 国产不卡视频在线| 中文字幕av一区二区三区谷原希美| 久久久噜噜噜久久中文字免| 欧美在线性爱视频| 国产精品黄视频| 国产欧美精品久久久| 亚洲第一中文字幕在线观看| 日韩电影视频免费| 欧美激情xxxx| 日韩中文字幕免费视频| 亚洲韩国日本中文字幕| 久久在线精品视频| 国产精品香蕉在线观看| 96国产粉嫩美女| 日韩的一区二区| 成人免费观看49www在线观看| 成人欧美一区二区三区在线湿哒哒| 色噜噜狠狠色综合网图区| 北条麻妃99精品青青久久| 久久国产天堂福利天堂| 在线观看欧美视频| 国产亚洲精品91在线| 欧美亚洲另类制服自拍| 91亚洲精品一区| 精品一区二区三区电影| 亚洲欧美在线第一页| 欧美日韩精品在线视频| 久久久久久久999精品视频| 亚洲va电影大全| 91最新在线免费观看| 欧美在线日韩在线| 久久久精品国产| 亚洲成人黄色在线| 日韩电影中文 亚洲精品乱码| 日本成人黄色片| 亚洲系列中文字幕| 亚洲性av网站| 国产精品色婷婷视频| 精品久久久久久中文字幕一区奶水| 亚洲欧洲自拍偷拍| 欧美色播在线播放| 日韩成人中文电影| 97色在线观看| 红桃av永久久久| 成人在线免费观看视视频| 伊人久久久久久久久久久久久| 久久成人精品视频| 91探花福利精品国产自产在线| 亚洲欧美制服中文字幕| 92版电视剧仙鹤神针在线观看| 欧美在线影院在线视频| 中文字幕亚洲综合| 高清一区二区三区日本久| 午夜剧场成人观在线视频免费观看| 热久久免费国产视频| 亚洲欧美成人精品| 91探花福利精品国产自产在线| 欧美日韩国产在线| 成人国产精品色哟哟| 午夜精品99久久免费| 97精品久久久中文字幕免费| 国产亚洲欧洲在线| 日本久久久久亚洲中字幕| 日韩小视频在线观看| 一区二区成人av| 视频在线观看一区二区| 狠狠久久五月精品中文字幕| 2019中文字幕在线免费观看| 久久综合九色九九| 青青久久av北条麻妃黑人| 欧美日韩国产精品| 岛国av在线不卡| 亚洲欧美精品suv| 成人有码视频在线播放| 91国产精品电影| 人人澡人人澡人人看欧美| 久久视频国产精品免费视频在线| 久久综合伊人77777尤物| 欧美激情日韩图片| 欧美黑人xxxx| 亚洲国产欧美精品| 国产精品久久久久久久久久久不卡| 日韩欧美亚洲一二三区| 亚洲成人a级网| 久久久精品久久久久| 最新国产精品拍自在线播放| 国产日产久久高清欧美一区| 亚洲第一色在线| 欧美中文字幕在线视频| 久久伊人色综合| 国产99视频精品免视看7| 日韩久久免费电影| 懂色aⅴ精品一区二区三区蜜月| 欧美激情一区二区三区在线视频观看| 国产欧美欧洲在线观看| 日韩精品视频在线观看网址| 国产拍精品一二三| 大伊人狠狠躁夜夜躁av一区| 国产精品三级美女白浆呻吟| 亚洲精品免费网站| 一区二区三区 在线观看视| 热久久美女精品天天吊色| 国产91ⅴ在线精品免费观看| 尤物99国产成人精品视频| 欧美日韩裸体免费视频| 精品二区三区线观看| 91精品国产高清| 国产精品黄色av| 久久亚洲私人国产精品va| 成人精品久久久|