乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Tokyo Cabinet - 哈希模式寫入100萬條數(shù)據(jù)只需0.643秒_風(fēng)中青竹

       Dawnxu 2009-08-11
      Tokyo Cabinet 是日本人 平林幹雄 開發(fā)的一款 DBM 數(shù)據(jù)庫,該數(shù)據(jù)庫讀寫非???,哈希模式寫入100萬條數(shù)據(jù)只需0.643秒,讀取100萬條數(shù)據(jù)只需0.773秒,是 Berkeley DB 等 DBM 的幾倍。

      Tokyo Tyrant 是由同一作者開發(fā)的 Tokyo Cabinet 數(shù)據(jù)庫網(wǎng)絡(luò)接口。它擁有Memcached兼容協(xié)議,也可以通過HTTP協(xié)議進行數(shù)據(jù)交換。

      Tokyo Tyrant 加上 Tokyo Cabinet,構(gòu)成了一款支持高并發(fā)的分布式持久存儲系統(tǒng),對任何原有Memcached客戶端來講,可以將Tokyo Tyrant看成是一個Memcached,但是,它的數(shù)據(jù)是可以持久存儲的。這一點,跟新浪的Memcachedb性質(zhì)一樣。



      相比Memcachedb而言,Tokyo Tyrant具有以下優(yōu)勢:

      1、故障轉(zhuǎn)移:Tokyo Tyrant支持雙機互為主輔模式,主輔庫均可讀寫,而Memcachedb目前支持類似MySQL主輔庫同步的方式實現(xiàn)讀寫分離,支持“主服務(wù)器可讀寫、輔助服務(wù)器只讀”模式。


      這里使用 $memcache->addServer 而不是 $memcache->connect 去連接 Tokyo Tyrant 服務(wù)器,是因為當(dāng) Memcache 客戶端使用 addServer 服務(wù)器池時,是根據(jù)“crc32(key) % current_server_num”哈希算法將 key 哈希到不同的服務(wù)器的,PHP、C 和 python 的客戶端都是如此的算法。Memcache 客戶端的 addserver 具有故障轉(zhuǎn)移機制,當(dāng) addserver 了2臺 Memcached 服務(wù)器,而其中1臺宕機了,那么 current_server_num 會由原先的2變成1。

      引用 memcached 官方網(wǎng)站和 PHP 手冊中的兩段話:

      http://www./memcached/
      If a host goes down, the API re-maps that dead host's requests onto the servers that are available.

      http://cn./manual/zh/function.Memcache-addServer.php
      Failover may occur at any stage in any of the methods, as long as other servers are available the request the user won't notice. Any kind of socket or Memcached server level errors (except out-of-memory) may trigger the failover. Normal client errors such as adding an existing key will not trigger a failover.

      ----------------------------------------------------------------

      2、日志文件體積?。篢okyo Tyrant用于主輔同步的日志文件比較小,大約是數(shù)據(jù)庫文件的1.3倍,而Memcachedb的同步日志文件非常大,如果不定期清理,很容易將磁盤寫滿。

      ----------------------------------------------------------------

      3、超大數(shù)據(jù)量下表現(xiàn)出色:

      但是,Tokyo Tyrant 也有缺點:在32位操作系統(tǒng)下,作為 Tokyo Tyrant 后端存儲的 Tokyo Cabinet 數(shù)據(jù)庫單個文件不能超過2G,而64位操作系統(tǒng)則不受這一限制。所以,如果使用 Tokyo Tyrant,推薦在64位CPU、操作系統(tǒng)上安裝運行。

      -------------------------------------------------------------------

      一、安裝
      1、首先編譯安裝tokyocabinet數(shù)據(jù)庫

      wget http://blog./soft/linux/memcached/tokyocabinet-1.3.1.tar.gz
      tar zxvf tokyocabinet-1.3.1.tar.gz
      cd tokyocabinet-1.3.1/
      ./configure
      make
      make install
      cd ../

      2、然后編譯安裝tokyotyrant

      wget http://blog./soft/linux/memcached/tokyotyrant-1.0.0.tar.gz
      tar zxvf tokyotyrant-1.0.0.tar.gz
      cd tokyotyrant-1.0.0/
      ./configure
      make
      make install
      cd ../

      二、配置
      1、創(chuàng)建tokyotyrant數(shù)據(jù)文件存放目錄

      mkdir -p /ttserver/

      2、啟動tokyotyrant的主進程(ttserver)
      (1)、單機模式

      ulimit -SHn 51200
      ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tch

      (2)、雙機互為主輔模式
      服務(wù)器192.168.1.91:

      ulimit -SHn 51200
      ttserver -host 192.168.1.91 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 91 -mhost 192.168.1.92 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch

      服務(wù)器192.168.1.92:

      ulimit -SHn 51200
      ttserver -host 192.168.1.92 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 92 -mhost 192.168.1.91 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch

      (3)、參數(shù)說明
      ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid path] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas] [-sid num] [-mhost name] [-mport num] [-rts path] [dbname]

      -host name : 指定需要綁定的服務(wù)器域名或IP地址。默認(rèn)綁定這臺服務(wù)器上的所有IP地址。
      -port num : 指定需要綁定的端口號。默認(rèn)端口號為1978
      -thnum num : 指定線程數(shù)。默認(rèn)為8個線程。
      -tout num : 指定每個會話的超時時間(單位為秒)。默認(rèn)永不超時。
      -dmn : 以守護進程方式運行。
      -pid path : 輸出進程ID到指定文件(這里指定文件名)。
      -log path : 輸出日志信息到指定文件(這里指定文件名)。
      -ld : 在日志文件中還記錄DEBUG調(diào)試信息。
      -le : 在日志文件中僅記錄錯誤信息。
      -ulog path : 指定同步日志文件存放路徑(這里指定目錄名)。
      -ulim num : 指定每個同步日志文件的大?。ɡ?28m)。
      -uas : 使用異步IO記錄更新日志(使用此項會減少磁盤IO消耗,但是數(shù)據(jù)會先放在內(nèi)存中,不會立即寫入磁盤,如果重啟服務(wù)器或ttserver進程被kill掉,將導(dǎo)致部分?jǐn)?shù)據(jù)丟失。一般情況下不建議使用)。
      -sid num : 指定服務(wù)器ID號(當(dāng)使用主輔模式時,每臺ttserver需要不同的ID號)
      -mhost name : 指定主輔同步模式下,主服務(wù)器的域名或IP地址。
      -mport num : 指定主輔同步模式下,主服務(wù)器的端口號。
      -rts path : 指定用來存放同步時間戳的文件名。

      如果使用的是哈希數(shù)據(jù)庫,可以指定參數(shù)“#bnum=xxx”來提高性能。它可以指定bucket存儲桶的數(shù)量。例如指定“#bnum=1000000”,就可以將最新最熱的100萬條記錄緩存在內(nèi)存中:

      ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tch#bnum=1000000

      如果大量的客戶端訪問ttserver,請確保文件描述符夠用。許多服務(wù)器的默認(rèn)文件描述符為1024,可以在啟動ttserver前使用ulimit命令提高這項值。例如:

      ulimit -SHn 51200

      3、停止tokyotyrant(ttserver)

      ps -ef | grep ttserver

      找到ttserver的進程號并kill,例如:

      kill -TERM 2159

      三、調(diào)用
      1、任何Memcached客戶端均可直接調(diào)用tokyotyrant。

      2、還可以通過HTTP方式調(diào)用,下面以Linux的curl命令為例,介紹如何操作tokyotyrant:
      (1)、寫數(shù)據(jù),將數(shù)據(jù)“value”寫入到“key”中:

      curl -X PUT http://127.0.0.1:11211/key -d "value"

      (2)、讀數(shù)據(jù),讀取“key”中數(shù)據(jù):

      curl http://127.0.0.1:11211/key

      (3)、刪數(shù)據(jù),刪除“key”:

      curl -X DELETE http://127.0.0.1:11211/key

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多