最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MemcacheQ安裝及使用方法

 更新時(shí)間:2017年03月04日 21:17:23   投稿:mdxy-dxy  
MemcacheQ 是一個(gè)簡(jiǎn)單的分布式隊(duì)列服務(wù),它的運(yùn)行依賴(lài)于BerkeleyDB 和 libevent,所以需要先安裝BerkeleyDB和libevent,需要的朋友可以參考下

一. 安裝
MemcacheQ 是一個(gè)簡(jiǎn)單的分布式隊(duì)列服務(wù),它的運(yùn)行依賴(lài)于BerkeleyDB 和 libevent,所以需要先安裝BerkeleyDB和libevent.
Berkeley DB 4.7 or later
Download from <http://www.oracle.com/database/berkeley-db/db/index.html>
How to install BerkeleyDB:

$tar -xvzf db-5.3.21.tar.gz
$cd db-5.3.21/
$cd build_unix/
$../dist/configure
$make
$make install

安裝BerkeleyDB時(shí),可以手動(dòng)指定安裝路徑:

../dist/configure --prefix=/usr/local/berkeleydb

不指定的話(huà),默認(rèn)安裝在:/usr/local/BerkeleyDB.5.3

libevent 1.4.x or later

先檢查libevent 是否已經(jīng)安裝:

#rpm -qa|grep libevent
libevent-devel-2.0.10-2.fc15.x86_64
libevent-2.0.10-2.fc15.x86_64
libevent-2.0.10-2.fc15.i686

或者:

ls -al /usr/lib |grep libevent

如果還沒(méi)有安裝:

Download from <http://monkey.org/~provos/libevent/>
How to install libevent:

$tar -xvzf libevent-1.4.x-stable.tar.gz
$cd libevent-1.4.x-stable
$./configure
$make
$make install

安裝libevent時(shí),可以手動(dòng)指定安裝路徑:

./configure --prefix=/usr/local/libevent

不指定的話(huà),默認(rèn)安裝在:/usr/lib64(64位系統(tǒng))或者/usr/lib(32位系統(tǒng))

memcacheQ

下載軟件包:http://code.google.com/p/memcacheq/downloads/list
解壓縮,cd進(jìn)目錄

./configure --enable-threads
make
make install

configure 時(shí),如果libevent 不是安裝在默認(rèn)目錄,需--with--libevent=/usr/local/libevent指定libevent的安裝目錄
若沒(méi)有將

/usr/local/lib
/usr/local/BerkeleyDB.5.3/lib

添加進(jìn)/etc/ld.so.conf 并運(yùn)行 /sbin/ldconfig 則需--with-bdb=/usr/local/BerkeleyDB.5.3 指定berkeleyDb庫(kù)的路徑

二.使用

啟動(dòng)memcacheQ
使用memcacheq -h 的命令來(lái)查看命令行選項(xiàng)
啟動(dòng)memcacheq:memcacheq -d -u nobody -r -H /tmp/memcacheq -N -R -v -L 1024 -B 1024 > /tmp/mq_error.log 2>&1
啟動(dòng)時(shí)需-u 參數(shù),指定運(yùn)行memcacheQ的用戶(hù),且指定的用戶(hù)必須有數(shù)據(jù)文件的讀寫(xiě)權(quán)限,如這里的/tmp/memcacheQ目錄,否則不能啟動(dòng)

命令行使用memcacheQ
telnet 127.0.0.1 22202
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]'.

只有兩個(gè)命令可以在命令行下使用memcacheQ
寫(xiě)對(duì)列:
set <queue name> <flags> 0 <message_len>\r\n
<put your message body here>\r\n
STORED\r\n
取出隊(duì)列:
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協(xié)議基本一致,只是把key name換成queue name,而且在set的命令中,忽略了expire_time的參數(shù)。mq的數(shù)據(jù)存儲(chǔ)是存在berkeleyDB中,做了持久化存儲(chǔ),沒(méi)有內(nèi)存的過(guò)期時(shí)間。
示例:
 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

三.安裝使用過(guò)程中可能出現(xiàn)的錯(cuò)誤

1.編譯出現(xiàn)錯(cuò)誤:checking for library containing db_create... no
configure: error: cannot find libdb.so in /usr/local/BerkeleyDB.5.3/lib
需要修改 configure 中的BerkeleyDB中的預(yù)編譯參數(shù)vim configure找到bdbdir="/usr/local/berkeleydb"改為
bdbdir="/usr/local/BerkeleyDB.5.3"再次編譯

2.configure: error: cannot find libdb.so in /usr/local/BerkeleyDB.5.3/lib
出現(xiàn)此錯(cuò)誤的原因在于沒(méi)有安裝BerkyleyDb,安裝即可

3./usr/local/memcacheq/bin/memcachq -h
            運(yùn)行報(bào):
            memcacheq: error while loading shared libraries: libdb-5.3.so: cannot open shared object file: No such file or directory
        解決方法:ln -s /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.so /usr/lib/libdb-5.3.so
       注:在64位操作系統(tǒng)中,需執(zhí)行
ln -s /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.so /usr/lib64/libdb-5.3.so

使用memcacheq做異步隊(duì)列,做個(gè)簡(jiǎn)單的生產(chǎn)者-消費(fèi)者模型。生產(chǎn)者將數(shù)據(jù)寫(xiě)入mq中,消費(fèi)者異步去隊(duì)列中去取數(shù)據(jù),進(jìn)而進(jìn)一步的消費(fèi)處理數(shù)據(jù)。

#!/usr/bin/env python
#-*- coding:utf8 -*-
 
import sys
import time
import random
 
import memcache
 
mc = memcache.Client(["%s:%s"%("127.0.0.1", "22202")])
queue_name = "q1"
def putter():
  count = 0
  while True:
    data = "hello%d"%(count)
    mc.set(queue_name, data)
    print "put ", data
    count += 1
    time.sleep(random.randint(1, 10))
 
def process_data(data):
  print "processing data :", data
 
def getter():
  while True:
    data = mc.get(queue_name)
    if data:
      process_data(data)
    else:
      print "no message, sleep for a while ..."
      time.sleep(30)
 
if __name__ == "__main__":
  if len(sys.argv) != 2:
    print "Wrong arg numbers"
  else:
    cmd = sys.argv[1]
    if cmd == "put": putter()
    elif cmd == "get": getter()
    else: print "wrong cmd"

在使用時(shí),開(kāi)兩個(gè)終端模擬兩個(gè)進(jìn)程,在一個(gè)終端中運(yùn)行

python mqdemo.py put

來(lái)模擬生產(chǎn)者;另一個(gè)終端中運(yùn)行

python mqdemo.py get

模擬消費(fèi)者。

相關(guān)文章

  • CentOS 7.2配置Apache服務(wù)httpd(下)

    CentOS 7.2配置Apache服務(wù)httpd(下)

    這篇文章主要為大家詳細(xì)介紹了CentOS 7.2配置Apache服務(wù) httpd上篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Linux中英文命令對(duì)應(yīng)

    Linux中英文命令對(duì)應(yīng)

    本文我們把Linux的中英文命令做了對(duì)應(yīng)翻譯,給需要的朋友參考一下。
    2017-12-12
  • 源碼安裝apache腳本部署過(guò)程詳解

    源碼安裝apache腳本部署過(guò)程詳解

    這篇文章主要介紹了源碼安裝apache腳本部署,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • 如何使用iostat查看linux硬盤(pán)IO性能

    如何使用iostat查看linux硬盤(pán)IO性能

    這篇文章主要介紹了如何使用iostat查看linux硬盤(pán)IO性能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 使用?DataAnt?監(jiān)控?Apache?APISIX的原理解析

    使用?DataAnt?監(jiān)控?Apache?APISIX的原理解析

    Apache?APISIX?是一個(gè)開(kāi)源的云原生?API?網(wǎng)關(guān),作為?API?網(wǎng)關(guān),它兼具動(dòng)態(tài)、實(shí)時(shí)、高性能等特點(diǎn),提供了負(fù)載均衡、動(dòng)態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認(rèn)證、可觀(guān)測(cè)性等豐富的流量管理功能,這篇文章主要介紹了如何使用?DataAnt?監(jiān)控?Apache?APISIX,需要的朋友可以參考下
    2022-06-06
  • centos7下rsync+crontab定期同步備份

    centos7下rsync+crontab定期同步備份

    最近需求想定期備份內(nèi)部重要的服務(wù)器數(shù)據(jù)到存儲(chǔ)里面,接下來(lái)通過(guò)本文給大家分享centos7下rsync+crontab定期同步備份,感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • 11個(gè)有用的Linux命令

    11個(gè)有用的Linux命令

    Linux命令行吸引了大多數(shù)Linux愛(ài)好者。一個(gè)正常的Linux用戶(hù)一般掌握大約50-60個(gè)命令來(lái)處理每日的任務(wù)。今天為你解釋下面幾個(gè)命令:sudo、python、mtr、Ctrl+x+e、nl、shuf、shuf、last。
    2013-10-10
  • linux使用scp實(shí)現(xiàn)服務(wù)器A向服務(wù)器B傳輸文件

    linux使用scp實(shí)現(xiàn)服務(wù)器A向服務(wù)器B傳輸文件

    這篇文章主要介紹了linux使用scp實(shí)現(xiàn)服務(wù)器A向服務(wù)器B傳輸文件的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • Linux系統(tǒng)使用Fuser命令的方法

    Linux系統(tǒng)使用Fuser命令的方法

    fuser命令是一個(gè)非常聰明的unix實(shí)用程序,用于查找正在使用某個(gè)文件、目錄或socket的進(jìn)程。這篇文章主要介紹了Linux系統(tǒng)使用Fuser命令的方法,需要的朋友可以參考下
    2020-06-06
  • Linux下淺談crond與crontab的命令用法

    Linux下淺談crond與crontab的命令用法

    本篇文章主要介紹了Linux下淺談crond與crontab的用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06

最新評(píng)論

家居| 靖远县| 阜阳市| 文登市| 浠水县| 崇文区| 锡林郭勒盟| 垦利县| 碌曲县| 南雄市| 新民市| 延长县| 上虞市| 平乐县| 富川| 肥西县| 维西| 井研县| 辽中县| 怀远县| 驻马店市| 阿城市| 新巴尔虎右旗| 保定市| 福安市| 公安县| 金堂县| 崇左市| 英德市| 巴塘县| 临夏县| 稷山县| 大洼县| 离岛区| 望都县| 柞水县| 龙川县| 平遥县| 务川| 恩平市| 瑞安市|