成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法

將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法

熱門標簽:江西南昌百應(yīng)電話機器人 hbuilder地圖標注 杭州400電話如何申請的 機器人電話機創(chuàng)意繪畫 400電話申請怎么看 天音通信電話機器人 高德地圖標注商家在哪 400電話從哪里申請濱州 隨州營銷電話機器人怎么樣

 基本思想

將MongoDB用作內(nèi)存數(shù)據(jù)庫(in-memory database),也即,根本就不讓MongoDB把數(shù)據(jù)保存到磁盤中的這種用法,引起了越來越多的人的興趣。這種用法對于以下應(yīng)用場合來講,超實用:

  •     置于慢速RDBMS系統(tǒng)之前的寫操作密集型高速緩存
  •     嵌入式系統(tǒng)
  •     無需持久化數(shù)據(jù)的PCI兼容系統(tǒng)
  •     需要輕量級數(shù)據(jù)庫而且?guī)熘袛?shù)據(jù)可以很容易清除掉的單元測試(unit testing)

如果這一切可以實現(xiàn)就真是太優(yōu)雅了:我們就能夠巧妙地在不涉及磁盤操作的情況下利用MongoDB的查詢/檢索功能。可能你也知道,在99%的情況下,磁盤IO(特別是隨機IO)是系統(tǒng)的瓶頸,而且,如果你要寫入數(shù)據(jù)的話,磁盤操作是無法避免的。

MongoDB有一個非??岬脑O(shè)計決策,就是她可以使用內(nèi)存影射文件(memory-mapped file)來處理對磁盤文件中數(shù)據(jù)的讀寫請求。這也就是說,MongoDB并不對RAM和磁盤這兩者進行區(qū)別對待,只是將文件看作一個巨大的數(shù)組,然后按照字節(jié)為單位訪問其中的數(shù)據(jù),剩下的都交由操作系統(tǒng)(OS)去處理!就是這個設(shè)計決策,才使得MongoDB可以無需任何修改就能夠運行于RAM之中。

實現(xiàn)方法

這一切都是通過使用一種叫做tmpfs的特殊類型文件系統(tǒng)實現(xiàn)的。在Linux中它看上去同常規(guī)的文件系統(tǒng)(FS)一樣,只是它完全位于RAM中(除非其大小超過了RAM的大小,此時它還可以進行swap,這個非常有用!)。我的服務(wù)器中有32GB的RAM,下面讓我們創(chuàng)建一個16GB的 tmpfs:

復(fù)制代碼 代碼如下:
# mkdir /ramdata
# mount -t tmpfs -o size=16000M tmpfs /ramdata/
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvde1             5905712   4973924    871792  86% /
none                  15344936         0  15344936   0% /dev/shm
tmpfs                 16384000         0  16384000   0% /ramdata

接下來要用適當?shù)脑O(shè)置啟動MongoDB。為了減小浪費的RAM數(shù)量,應(yīng)該把smallfiles和noprealloc設(shè)置為true。既然現(xiàn)在是基于RAM的,這么做完全不會降低性能。此時再使用journal就毫無意義了,所以應(yīng)該把nojournal設(shè)置為true。

復(fù)制代碼 代碼如下:
dbpath=/ramdata
nojournal = true
smallFiles = true
noprealloc = true

MongoDB啟動之后,你會發(fā)現(xiàn)她運行得非常好,文件系統(tǒng)中的文件也正如期待的那樣出現(xiàn)了:

復(fù)制代碼 代碼如下:
# mongo
MongoDB shell version: 2.3.2
connecting to: test
> db.test.insert({a:1})
> db.test.find()
{ "_id" : ObjectId("51802115eafa5d80b5d2c145"), "a" : 1 }

# ls -l /ramdata/
total 65684
-rw-------. 1 root root 16777216 Apr 30 15:52 local.0
-rw-------. 1 root root 16777216 Apr 30 15:52 local.ns
-rwxr-xr-x. 1 root root        5 Apr 30 15:52 mongod.lock
-rw-------. 1 root root 16777216 Apr 30 15:52 test.0
-rw-------. 1 root root 16777216 Apr 30 15:52 test.ns
drwxr-xr-x. 2 root root       40 Apr 30 15:52 _tmp

現(xiàn)在讓我們添加一些數(shù)據(jù),證實一下其運行完全正常。我們先創(chuàng)建一個1KB的document,然后將它添加到MongoDB中4百萬次:

復(fù)制代碼 代碼如下:
> str = ""

> aaa = "aaaaaaaaaa"
aaaaaaaaaa
> for (var i = 0; i 100; ++i) { str += aaa; }

> for (var i = 0; i 4000000; ++i) { db.foo.insert({a: Math.random(), s: str});}
> db.foo.stats()
{
        "ns" : "test.foo",
        "count" : 4000000,
        "size" : 4544000160,
        "avgObjSize" : 1136.00004,
        "storageSize" : 5030768544,
        "numExtents" : 26,
        "nindexes" : 1,
        "lastExtentSize" : 536600560,
        "paddingFactor" : 1,
        "systemFlags" : 1,
        "userFlags" : 0,
        "totalIndexSize" : 129794000,
        "indexSizes" : {
                "_id_" : 129794000
        },
        "ok" : 1
}


可以看出,其中的document平均大小為1136字節(jié),數(shù)據(jù)總共占用了5GB的空間。_id之上的索引大小為130MB?,F(xiàn)在我們需要驗證一件 非常重要的事情:RAM中的數(shù)據(jù)有沒有重復(fù),是不是在MongoDB和文件系統(tǒng)中各保存了一份?還記得MongoDB并不會在她自己的進程內(nèi)緩存任何數(shù)據(jù),她的數(shù)據(jù)只會緩存到文件系統(tǒng)的緩存之中。那我們來清除一下文件系統(tǒng)的緩存,然后看看RAM中還有有什么數(shù)據(jù):

復(fù)制代碼 代碼如下:
# echo 3 > /proc/sys/vm/drop_caches
# free
             total       used       free     shared    buffers     cached
Mem:      30689876    6292780   24397096          0       1044    5817368
-/+ buffers/cache:     474368   30215508
Swap:            0          0          0

可以看到,在已使用的6.3GB的RAM中,有5.8GB用于了文件系統(tǒng)的緩存(緩沖區(qū),buffer)。為什么即使在清除所有緩存之后,系統(tǒng)中仍然還有5.8GB的文件系統(tǒng)緩存??其原因是,Linux非常聰明,她不會在tmpfs和緩存中保存重復(fù)的數(shù)據(jù)。太棒了!這就意味著,你在RAM只有一份數(shù)據(jù)。下面我們訪問一下所有的document,并驗證一下,RAM的使用情況不會發(fā)生變化:

復(fù)制代碼 代碼如下:
> db.foo.find().itcount()
4000000

# free
             total       used       free     shared    buffers     cached
Mem:      30689876    6327988   24361888          0       1324    5818012
-/+ buffers/cache:     508652   30181224
Swap:            0          0          0
# ls -l /ramdata/
total 5808780
-rw-------. 1 root root  16777216 Apr 30 15:52 local.0
-rw-------. 1 root root  16777216 Apr 30 15:52 local.ns
-rwxr-xr-x. 1 root root         5 Apr 30 15:52 mongod.lock
-rw-------. 1 root root  16777216 Apr 30 16:00 test.0
-rw-------. 1 root root  33554432 Apr 30 16:00 test.1
-rw-------. 1 root root 536608768 Apr 30 16:02 test.10
-rw-------. 1 root root 536608768 Apr 30 16:03 test.11
-rw-------. 1 root root 536608768 Apr 30 16:03 test.12
-rw-------. 1 root root 536608768 Apr 30 16:04 test.13
-rw-------. 1 root root 536608768 Apr 30 16:04 test.14
-rw-------. 1 root root  67108864 Apr 30 16:00 test.2
-rw-------. 1 root root 134217728 Apr 30 16:00 test.3
-rw-------. 1 root root 268435456 Apr 30 16:00 test.4
-rw-------. 1 root root 536608768 Apr 30 16:01 test.5
-rw-------. 1 root root 536608768 Apr 30 16:01 test.6
-rw-------. 1 root root 536608768 Apr 30 16:04 test.7
-rw-------. 1 root root 536608768 Apr 30 16:03 test.8
-rw-------. 1 root root 536608768 Apr 30 16:02 test.9
-rw-------. 1 root root  16777216 Apr 30 15:52 test.ns
drwxr-xr-x. 2 root root        40 Apr 30 16:04 _tmp
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvde1             5905712   4973960    871756  86% /
none                  15344936         0  15344936   0% /dev/shm
tmpfs                 16384000   5808780  10575220  36% /ramdata

果不其然! :)

復(fù)制(replication)呢?

既然服務(wù)器在重啟時RAM中的數(shù)據(jù)都會丟失,所以你可能會想使用復(fù)制。采用標準的副本集(replica set)就能夠獲得自動故障轉(zhuǎn)移(failover),還能夠提高數(shù)據(jù)讀取能力(read capacity)。如果有服務(wù)器重啟了,它就可以從同一個副本集中另外一個服務(wù)器中讀取數(shù)據(jù)從而重建自己的數(shù)據(jù)(重新同步,resync)。即使在大量數(shù)據(jù)和索引的情況下,這個過程也會足夠快,因為索引操作都是在RAM中進行的 :)

有一點很重要,就是寫操作會寫入一個特殊的叫做oplog的collection,它位于local數(shù)據(jù)庫之中。缺省情況下,它的大小是總數(shù)據(jù)量的5%。在我這種情況下,oplog會占有16GB的5%,也就是800MB的空間。在拿不準的情況下,比較安全的做法是,可以使用oplogSize這個選項為oplog選擇一個固定的大小。如果備選服務(wù)器宕機時間超過了oplog的容量,它就必須要進行重新同步了。要把它的大小設(shè)置為1GB,可以這樣:

復(fù)制代碼 代碼如下:
oplogSize = 1000

分片(sharding)呢?

既然擁有了MongoDB所有的查詢功能,那么用它來實現(xiàn)一個大型的服務(wù)要怎么弄?你可以隨心所欲地使用分片來實現(xiàn)一個大型可擴展的內(nèi)存數(shù)據(jù)庫。配置服務(wù)器(保存著數(shù)據(jù)塊分配情況)還還是用過采用基于磁盤的方案,因為這些服務(wù)器的活動數(shù)量不大,老從頭重建集群可不好玩。
注意事項

RAM屬稀缺資源,而且在這種情況下你一定想讓整個數(shù)據(jù)集都能放到RAM中。盡管tmpfs具有借助于磁盤交換(swapping)的能力,但其性能下降將非常顯著。為了充分利用RAM,你應(yīng)該考慮:

  •     使用usePowerOf2Sizes選項對存儲bucket進行規(guī)范化
  •     定期運行compact命令或者對節(jié)點進行重新同步(resync)
  •     schema的設(shè)計要相當規(guī)范化(以避免出現(xiàn)大量比較大的document)

結(jié)論

寶貝,你現(xiàn)在就能夠?qū)ongoDB用作內(nèi)存數(shù)據(jù)庫了,而且還能使用她的所有功能!性能嘛,應(yīng)該會相當驚人:我在單線程/核的情況下進行測試,可以達到每秒20K個寫入的速度,而且增加多少個核就會再增加多少倍的寫入速度。

您可能感興趣的文章:
  • 解決MongoDB占用內(nèi)存過大頻繁死機的方法詳解
  • python監(jiān)控linux內(nèi)存并寫入mongodb(推薦)
  • 解決MongoDB 排序超過內(nèi)存限制的問題
  • cgroup限制mongodb進程內(nèi)存大小
  • MongoDB 內(nèi)存使用情況分析
  • MongoDB 內(nèi)存管理相關(guān)總結(jié)

標簽:常德 招商 葫蘆島 沈陽 保定 昆明 鶴崗 石嘴山

巨人網(wǎng)絡(luò)通訊聲明:本文標題《將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法》,本文關(guān)鍵詞  將,MongoDB,作為,Redis,式,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于將MongoDB作為Redis式的內(nèi)存數(shù)據(jù)庫的使用方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美日韩亚洲高清| 欧美成人高清电影在线| 亚洲色大成网站www久久九九| 欧美性猛交p30| 精品久久久久一区二区| 一本色道久久综合亚洲精品图片| 国产精品视频导航| 久草视频在线播放| 黄视频在线播放| 疯狂欧洲av久久成人av电影| 日韩一级免费视频| 国产精品网站在线看| 不卡的av中文字幕| 欧美日韩色一区| 久久午夜精品一区二区| 欧美aa在线视频| 久久av资源网站| 丝袜脚交一区二区| 久久久久一区二区| 亚洲爆乳无码一区二区三区| 一色屋成人免费精品网站| aaa亚洲精品| 99国产在线| 天堂av一区二区| 日韩偷拍自拍| 一区二区三区四区五区精品视频| 亚洲永久免费视频| 中文字幕永久免费| 欧美日韩另类国产亚洲欧美一级| 国产视频每日更新| 亚洲国产清纯| 国产精品视频最多的网站| 爽爽爽爽爽爽爽成人免费观看| 精品国产麻豆| 日韩欧美国产高清| 国产精品福利一区| 国产三级在线观看视频| 日韩一级理论片| 综合干狼人综合首页| 亚洲第五色综合网| 天堂网一区二区| 久久精品人人做人人爽电影| 欧美日韩国产综合一区二区三区| 久久久久久久久久久久久91| 色一情一乱一区二区三区| 国产婷婷成人久久av免费高清| 国产成人av自拍| 香蕉视频1024| 国产精品视频流白浆免费视频| 日本高清视频在线播放| 青青青爽在线视频免费观看| 亚洲爆乳无码一区二区三区| 日韩成人av一区二区| 亚洲色成人www永久网站| 韩国av免费在线| 国产欧美精品一区二区三区| 成人羞羞国产免费| 国产成人精品无码片区在线| 色琪琪综合男人的天堂aⅴ视频| 黄色小说在线观看视频| 亚洲国产中文在线二区三区免| 女人被狂躁到高潮的免费| 国产一区二区免费电影| 在线观看免费观看在线91| 欧美日韩一区二区区| 国产激情无码一区二区三区| 国产精品爽爽久久| 丰满少妇一级片| 97人妻精品一区二区免费| 性生生活大片免费看视频| 精品一区二区三区无码视频| 久草国产精品视频| 亚洲中文字幕无码一区| 免费萌白酱国产一区二区三区| 欧美日韩另类综合| www.五月天激情| 欧美v亚洲v| 国产乱子伦精品| 免费成年人高清视频| 玖玖精品一区| 狠狠狠综合7777久夜色撩人| 国产又爽又黄免费软件| 国产小视频在线播放| 成人欧美一区| 免费污视频在线观看| 又黄又免费的网站| 国产综合精品久久| 亚洲老女人视频免费| 黑人精品欧美一区二区蜜桃| 中文字幕久热精品视频免费| 一级黄色免费| 91九色在线播放| 午夜在线免费观看视频| 初体验·韩国| 国产精品第12页| 色综合色综合色综合色综合| 免费高清视频在线观看| 国产精品不卡av| 国产香蕉97碰碰久久人人| 天海翼女教师无删减版电影| 欧美精彩一区二区三区| 男人天堂网站在线| 国产精品一区二| 国产高清视频在线| 一区二区三视频| 亚洲一区不卡| 日韩毛片免费视频一级特黄| 精品日韩在线视频| 国产亚洲一区二区三区四区| 黄网页免费在线观看| 国产日韩一区欧美| 视频一区二区综合| 日韩免费高清在线| 日韩丝袜视频| 免费成人看片| 精品视频一区在线视频| 都市激情久久久久久久久久久| 91九色02白丝porn| 国产午夜福利片| 男人天堂2024| 在线免费精品视频| 69亚洲乱人伦| www.神马久久| 亚洲av毛片在线观看| 日韩视频一区二区| 成人激情在线| 久久久国产免费| av动漫在线观看| 黑人巨大狂躁日本妞在线观看| 国产精品久久久久久久久免费高清| 在线看片一区| av片在线观看网站| 国产精品高潮呻吟av| 青青草精品在线视频| 欧美日韩精品国产| 久久综合色天天久久综合图片| 欧美亚洲一二三区| 日韩va欧美va亚洲va久久| 在线播放三级网站| 国产精品乱子伦| 欧洲精品一区二区三区在线观看| 亚洲狼人国产精品| 青青操在线播放| 欧美性受xxxx黑人xyx| 国产99久久精品一区二区300| 国产精品久久久久一区| 日本高清中文字幕在线| 欧美性大战久久久久久久蜜臀| 亚洲第一综合天堂另类专| 国产三级免费观看| 第一视频专区在线| 天堂中文а√在线| www操com| 国产欧美精品一区二区三区| 免费成人结看片| 亚洲男人7777| 欧美性另类69xxxx| 成人国产精品毛片| 欧美大人香蕉在线| 欧美亚韩一区二区三区| 国产一区视频在线观看免费| 亚洲天堂在线播放| 国产伦精品一区二区三区四区视频_| 国产精品又粗又长| eeuss影院www影院| 精品无人区太爽高潮在线播放| 亚洲性猛交富婆| 欧美精品一区男女天堂| 成人免费网站观看| 国产精品伦一区| 鲁丝一区鲁丝二区鲁丝三区| 欧美性性性性性ⅹxxbbbb| 亚洲国产欧美不卡在线观看| 空姐吹箫视频大全| 中文字幕一区二区三区乱码图片| 中文区中文字幕免费看| 蜜桃av一区二区三区电影| 深夜精品寂寞黄网站在线观看| 日韩精品视频免费| 国产对白在线| 九色综合婷婷综合| 91美女蜜桃在线| 在线影音av| 欧美大片va欧美在线播放| 成人国产1314www色视频| 成年人视频网站免费观看| 一区二区三区免费视频网站| 国产三级精品三级在线| 青青久在线视频免费观看| 电影一区二区三| xfplay5566色资源网站| 九九热在线播放| 国产交换配乱淫视频免费| 国产福利微拍精品一区二区| 国内av一区二区| 亚洲国产精品女人| 欧美性猛交ⅹxxx乱大交免费| 高清在线一区二区| 久久精子c满五个校花| 美女诱惑一区二区| 黄色大片在线免费看| 91精选在线| 香蕉视频黄色在线观看| 中文字幕在线观看的网站| 国产一区二区三区精品欧美日韩一区二区三区| 在线永久免费观看黄网站| 成人激情五月天| 成人一区不卡| 久久久久亚洲av无码专区首jn| 26uuu精品一区二区| 日本黄色电影网站| 欧美寡妇偷汉性猛交| 污视频免费在线观看网站| 欧美伊久线香蕉线新在线| a毛片在线播放| 男人的天堂在线免费视频| 九九久久久久99精品| 婷婷五月精品中文字幕| jizz国产在线观看| 亚洲第一精品久久忘忧草社区| 爽爽窝窝午夜精品一区二区| 日本aⅴ写真网站免费| 黄色国产精品一区二区三区| 女人被狂躁到高潮的免费| 日本三级电影网| 我家有个日本女人| 成人eeuss影院在线观看| 无码中文字幕色专区| 二区在线观看| 午夜精品一区二区三| www在线免费观看| 欧美jizz18hd性欧美| 亚洲 欧洲 日韩| 亚洲色图色老头| 亚洲国产视频一区二区三区| 无夜福利视频观看| 日韩女同互慰一区二区| 日本一道高清亚洲日美韩| 久久精品日韩精品| 国产精品极品美女粉嫩高清在线| 人人澡人人澡人人看欧美| 女同互添互慰av毛片观看| 视频一区在线免费观看| 视频一区二区三区在线看免费看| 日韩一区二区三区精品视频| 国产欧美精品一区二区色综合| 91在线观看免费高清完整版在线观看| 国产亚洲欧美日韩精品| 久久久久久成人| 岛国最新视频免费在线观看| 欧美日产在线观看| 在线亚洲精品| 欧美~级网站不卡| 国产午夜一区二区| 夜夜摸视频网| 国内国产区免费视频| 中文字幕精品—区二区日日骚| 麻豆成人入口| 久久电影网站| 午夜宅男久久久| 色悠悠亚洲一区二区| 中文字幕在线看高清电影| 久热中文字幕在线精品免费| 五月激情六月婷婷| 久久av免费一区| 男人的天堂a在线| 伊人久久大香线蕉成人综合网| 国产一级二级三级在线观看| 性生生活性生交a级| 国产成人在线免费视频| 首页综合国产亚洲丝袜| 午夜影视日本亚洲欧洲精品| 日韩欧美亚洲v片| 麻豆精品在线| 欧美成人中文字幕| 亚洲一卡二卡在线| 在线国产视频| 69视频在线播放| 国产黄色一级大片| 911亚洲精品| 亚洲精品资源在线| 97视频在线免费观看| 亚洲精品久久久久久一区二区| 飘雪影院手机免费高清版在线观看| 成人精品水蜜桃| 欧美 中文字幕| 欧美一级特黄a| 亚洲小说区图片| 一区二区高清不卡| 免费成人深夜蜜桃视频| 十大免费污污软件| 8av国产精品爽爽ⅴa在线观看| 综合欧美精品| 电影天堂久久| 中文精品久久| 九九热免费精品视频| 91精品国产沙发| 久久久噜噜噜久久| 国产一区二区三区丝袜| 97成人在线观看视频| 日本少妇一区二区| 色综合久久六月婷婷中文字幕| 成人黄色国产精品网站大全在线免费观看| 免费黄色在线看| 天天操天天射天天爽| 91桃色在线观看| 国产欧美三级| 精品国产一区二区三区免费| 日韩av片免费在线观看| 国产情人节一区| 亚洲黄色毛片| 天天干天天av| 黄色毛片在线观看| 日韩毛片在线免费观看| 国产日韩一区二区三区| 中文在线а√天堂官网| 国产精品一区二区久久不卡| www.激情成人| 欧美大胆a人体大胆做受| 国产一区高清视频| 亚洲欧美日韩另类| gogogo免费视频观看亚洲一| 国产丰满美女做爰| 国产精品av免费| 亚洲国产精品久久久久蝴蝶传媒| 亚洲精品一二三区区别| 91色在线porny| 国产精品久久午夜夜伦鲁鲁|