NoSQL產(chǎn)品性能評測_第1頁
NoSQL產(chǎn)品性能評測_第2頁
NoSQL產(chǎn)品性能評測_第3頁
NoSQL產(chǎn)品性能評測_第4頁
NoSQL產(chǎn)品性能評測_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

NoSQL產(chǎn)品性能評測2012-12-05楊琪科目的NoSQL產(chǎn)品的介紹。NoSQL產(chǎn)品的性能對比測試。具體的一個網(wǎng)站作為案列,分享下Redis,Memcache,Mongodb的使用情況和碰到的問題。NoSQL產(chǎn)品列表MemcacheRedisMongdbOracleTimesTenHBaseNoSQL-MemcacheMemcache是什么?Memcache有什么特點?Memcache在什么場景下適用?Memcache具體怎么用?在用Memcache中碰到的問題?Memcache是什么Memcache是個高性能的基于內(nèi)存的分布式緩存系統(tǒng),Memcache的分布式是基于客戶端的Key的hash來做均衡,是個偽分布式的系統(tǒng)。Memcache有2個組件,一個客戶端(java),一個服務(wù)器端c編寫。Memcache的特點基于內(nèi)存(但是重啟了后,數(shù)據(jù)丟失)。提供簡單的get,set方法。緩存對象只能小于1M。安裝,使用比較簡單。Memcache的使用場景中小型網(wǎng)站應(yīng)用中來存放非可靠性的只讀數(shù)據(jù)。例如存放用戶的信息。網(wǎng)站的計數(shù)。數(shù)據(jù)庫DAO前的行記錄緩存。全局的代碼參數(shù)。Memcache具體怎么用安裝libevent安裝wget/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gztar-zxvflibevent-2.0.21-stable.tar.gz./configure-prefix=/usrmakemakeinstallMemcache具體怎么用memcache安裝wget/files/memcached-1.4.15.tar.gztar-zxvfmemcached-1.4.15.tar.gz./configure-with-libevent=/usrmakemakeinstallMemcache的啟動參數(shù)啟動./memcached-d-m10240-p11211-uroot啟動參數(shù)啟動參數(shù)說明-d選項是啟動一個守護(hù)進(jìn)程,后臺掛起跑-m是分配給Memcache使用的內(nèi)存數(shù)量,單位是MB-u是運行Memcache的用戶-l是監(jiān)聽的服務(wù)器IP地址,如果有多個地址的話,-p是設(shè)置Memcache監(jiān)聽的端口-c選項是最大運行的并發(fā)連接數(shù),默認(rèn)是1024,-P是設(shè)置保存Memcache的pid文件關(guān)閉killallmemcachedMemcache-Java客戶端Java客戶端操作作MemcacheMemcache中碰到的問問題Memcache無文件備份份機(jī)制,機(jī)機(jī)器重啟,,數(shù)據(jù)掉失失。只能存放1M的內(nèi)容,有有一定的局局限性。偽分布式存存儲,JAVA客戶端做HASH的路由,節(jié)點的增加加和宕機(jī)都都是會造成成數(shù)據(jù)的掉掉失。只提供了核核心的2個get/set命令,無其其他豐富的的API節(jié)點的增加加和減少導(dǎo)導(dǎo)致的數(shù)據(jù)據(jù)問題Hash一致性問題題解決方案1主從模式,,主從模式式之間保持持?jǐn)?shù)據(jù)同步步.2一致性Hash算法.3Redis來代替Memcache.Hash一致性Hash一致性NoSQL-RedisRedis是什么?Redis能干嗎?Redis有什么特點點?Redis在什么場景景下適用??Redis具體怎么用用?在用Redis中碰到的問問題?Redis是什么?Redis是一個用用c語言寫的類類似Memcache的key-value的存儲系統(tǒng)統(tǒng),它比Memcache提供了更多多的API接口和更好好的并發(fā)性性能,可以以支持10萬并發(fā)的讀讀寫,建議議用Redis代替Memcahe。Redis是基于內(nèi)存存的,因此此部署Redis的機(jī)器對于于內(nèi)存是非非常有高的的要求的,,Redis是會把數(shù)據(jù)據(jù)實時寫到到內(nèi)存中,,再定時同同步到文件件。Redis能干嘛?Redis可以當(dāng)作數(shù)數(shù)據(jù)庫來用用,但是有有缺陷,在在可靠性上上,沒有Oracle關(guān)系型數(shù)據(jù)據(jù)庫來的穩(wěn)穩(wěn)定??梢宰鳛槌殖志脤拥腃ache層??梢跃従彺嫦旅娴牡臄?shù)據(jù)庫結(jié)結(jié)構(gòu)。計數(shù)排行榜樣,,最新瀏覽覽的數(shù)據(jù)隊列(訂閱閱關(guān)系)Redis能干嘛?Redis可以當(dāng)作數(shù)數(shù)據(jù)庫來用用,但是有有缺陷,在在可靠性上上,沒有Oracle關(guān)系型數(shù)據(jù)據(jù)庫來的穩(wěn)穩(wěn)定。可以作為持持久層的Cache層??梢跃従彺嫦旅娴牡臄?shù)據(jù)庫結(jié)結(jié)構(gòu)。計數(shù)排行榜樣,,最新瀏覽覽的數(shù)據(jù)隊列(訂閱閱關(guān)系)Redis特點?完全居于內(nèi)內(nèi)存,數(shù)據(jù)據(jù)實時的讀讀寫內(nèi)存,,定時閃回回到文件中中讀寫速度快快支持高并發(fā)發(fā)量,官方方宣傳支持持10萬級別的并并發(fā)讀寫支持機(jī)器重重啟后的,,重新加載載模式,不不會掉數(shù)據(jù)據(jù)Redis適用場景??在非可靠數(shù)數(shù)據(jù)存儲中中,可以作作為數(shù)據(jù)持持久層或者者是數(shù)據(jù)緩緩存區(qū)。對于讀寫壓壓力比較大大,實時性性要求比較較高的場景景下。關(guān)系型數(shù)據(jù)據(jù)庫不能勝勝任的模型型下的場景景。例如在SNS中訂閱關(guān)系系。Redis具體用法??安裝,啟動動,關(guān)閉,,配置,Java訪問操作安裝$tarxzfredis-2.6.7.tar.gz$cdredis-2.6.7$makeinstallRedis–啟動&關(guān)閉啟動./src/redis-server/etc/redis.conf&關(guān)閉./src/redis-clishutdownRedis的配置-基本配置Redis的核心配置置文件,只只有一個,,就是redis.conf文件,下面面是列舉了了核心的配配置項。

配置項

值字段意義daemonizeno或者yes是不是需要在后臺運行pidfile/var/run/redis.pidpid文件port6379啟動端口bind

綁定IP,只有制定的IP地址才能夠訪問redis實例timeout0一個客戶端空閑多少秒后關(guān)閉連接databases16數(shù)據(jù)庫數(shù)loglevelDebugVerboseNoticewarningdebug開發(fā)和測試的時候配置verbose比debug信息少點notice基本信息,生產(chǎn)環(huán)境建議配置這個warning嚴(yán)重錯誤的時候Redis的配置-快照配置

配置項

值字段意義save9001指出在多長時間內(nèi),有多少次更新操作,就將數(shù)據(jù)同步到數(shù)據(jù)文件rdb,在15分鐘內(nèi),有1個key被改變就同步到文件中去rdbcompressionyes當(dāng)導(dǎo)出到.rdb數(shù)據(jù)庫時是否用LZF壓縮字符串對象rdbchecksumyes存儲和加載rdb文件時校驗dbfilenamedump.rdb數(shù)據(jù)庫的文件名dir./工作目錄Redis的配置-同步配置

配置項

值字段意義slaveof6379主服務(wù)器地址masterauth<master-password>從服務(wù)器連接主服務(wù)器的時候的密碼slave-serve-stale-dataYes/no當(dāng)從庫正在做復(fù)制的同步工作的時候,從庫的工作模式,配置成yes了后繼續(xù)相應(yīng)客戶的請求,配置成no了后,不相應(yīng)客戶的請求。slave-read-onlyyes配置從庫為只讀模式,這個屬性只需要在主庫上配置,在從庫上配置沒什么意義的repl-ping-slave-period10從庫定時向主庫發(fā)送Ping的命令repl-timeout60從庫定時向主庫發(fā)送Ping的命令的超時時間slave-priority100如果主庫掛了的,會尋找找一個slave-priority最小的一個,來變成主庫。Redis的配置-安全配置

配置項

值字段意義requirepassfoobaredredis的密碼,可以理解成Oracle數(shù)據(jù)庫的連接密碼一樣的。maxclients10000最大連接數(shù)maxmemory<bytes>最大內(nèi)存數(shù),給Redis使用的最大內(nèi)存數(shù)。maxmemory-policyvolatile-lruvolatile-randomallkeys->randomvolatile-ttlnoeviction當(dāng)Redis已經(jīng)存到最大內(nèi)存數(shù)的時候,這個時候 Redis使用的策略,下面是5個策略。volatile-lru->根據(jù)LRU算法生成的過期時間來刪除。allkeys-lru->根據(jù)LRU算法刪除任何key。volatile-random->根據(jù)過期設(shè)置來隨機(jī)刪除key。allkeys->random->無差別隨機(jī)刪。volatile-ttl->根據(jù)最近過期時間來刪除(輔以TTL)noeviction->誰也不刪,直接在寫操作時返回錯誤Redis的配置-數(shù)據(jù)追加配配置

配置項

值字段意義appendonlynoRedis是異步的把數(shù)據(jù)寫到文件中去的,有時候機(jī)器重啟會導(dǎo)致正在寫入的數(shù)據(jù)丟失掉的,如果appendonly屬性配置成yes了后,Redis會把數(shù)據(jù)實時的寫到appendonly.aof文件中去,一旦Redis重啟的時候,就會加載這個文件的,那樣的話,數(shù)據(jù)就不會丟掉了的.appendfilenameappendonly.aof累加文件名字appendfsyncNoAlwayseverysecalways馬上立即寫到操作系統(tǒng)的文件中去,準(zhǔn)確性最高,但是代價也是最高的,速度比較慢了的,并且是IO開銷是非常高的,配置成no不是立刻寫,everysec每秒寫一次no-appendfsync-on-rewriteno當(dāng)Aoflog進(jìn)行重寫時,是否寫日志時fsyncauto-aof-rewrite-percentage100當(dāng)日志文件超過原始的日志文件的多少的時候,就開啟重寫機(jī)制auto-aof-rewrite-min-size64M這次寫入大小,超過多少大小了后,就開啟重寫機(jī)制Java操作RedisJava客戶端別表表Jedis官方推薦Jredis推薦JDBC-Jredis不推薦RJC不推薦Redis-protocol不推薦Java操作RedisRedisSelect*fromtablewhereuserIdin(1,2,3,4,5,6,7,8,9,10,1000)Redis高級特性主從模式復(fù)復(fù)制。發(fā)布訂閱模模式。NoSQL-MongodbMongodb是什么?Mongodb能干嗎?Mongodb有什么特點點?Mongodb在什么場景景下適用??Mongodb具體怎么用用?Mongdb是什么?Mongodb是一個底層層用C++語言編寫的的一個分布布式文件存存儲系統(tǒng),,可以簡單單的理解成成一個類Mysql數(shù)據(jù)庫的分分布式文件件系統(tǒng)。Mongodb底層是用C++語言編寫的的。一個分布式式的文件存存儲系統(tǒng)Mongdb能干嘛?Mongdb特點?天生有分布布式的優(yōu)點點(最強的的一個優(yōu)點點)。海量文件,,文本類型型數(shù)據(jù)的存存儲。性能卓越的的海量數(shù)據(jù)據(jù)的存儲情情況下的讀讀寫性能。。Mongodb適用場景??MySQL的代替品或或者是半代代替品(對對復(fù)雜查詢詢要求不高高的情況下下)讀壓力比寫寫的壓力大大的情況下下的文件和和文本類型型的數(shù)據(jù),,并且數(shù)據(jù)據(jù)量比較大大。Mongdb具體用法??安裝,啟動動,關(guān)閉,,配置,Java訪問操作安裝解壓縮tar––xzvfmongodb-linux-i686-2.2.2.tgz新建數(shù)據(jù)庫庫目錄mkdir–p/data/dbMongdb–啟動&關(guān)閉啟動./mongod&關(guān)閉服務(wù)端關(guān)閉閉沒有掛起跑跑的話直直接ctrl+c掛起跑的話話的話直直接kill進(jìn)程號客戶端關(guān)閉閉db.shutdownerver()Java操作MongodbJava客戶端列表表mongo-java-driver/mongodb/mongo-java-driverJava操作Mongodb連接Mongodb,新建集合,,插入文檔檔,查詢文文檔,刪除除文檔Java操作MongodbNoSQL-OracleTimesTenTimesTen是什么?TimesTen能干嗎?TimesTen有什么特點點?TimesTen在什么場景景下適用??TimesTen具體怎么用用?在用TimesTen中碰到的問問題?OracleTimesTen是什么OracleTimesTen是HP實驗室人員員在1992年做的一個個內(nèi)存數(shù)據(jù)據(jù)庫產(chǎn)品,,后來惠普普實驗室的的人成立了了TimesTen公司,Oracle在2005年的時候把把TimesTen收購了的。。OracleTimesTen特點及時響應(yīng)完完全居于于內(nèi)存,對對于CPU,磁盤的IO壓力非常低低。支持持事事物物兼容容標(biāo)標(biāo)準(zhǔn)準(zhǔn)SQL高性性能能高可可用用性性主從從模模式式TT的物物理理組組成成TT物理理結(jié)結(jié)構(gòu)構(gòu)Sharedlibraries:共享享庫庫::可可以以理理解解為為訪訪問問數(shù)數(shù)據(jù)據(jù)的的驅(qū)驅(qū)動動程程序序內(nèi)存存中中的的數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)::表表,,索索引引在在內(nèi)內(nèi)存存的的數(shù)數(shù)據(jù)據(jù)系統(tǒng)統(tǒng)進(jìn)進(jìn)程程::管理理程程序序::備備份份程程序序磁盤盤上上的的檢檢查查點點和和日日志志文文件件::數(shù)數(shù)據(jù)據(jù)和和日日志志存存入入到到磁磁盤盤文文件件上上。。TT的2個高高級級特特性性復(fù)制制負(fù)載載均均衡衡TimesTen復(fù)制制OracleTimesTen適用用場場景景OracleTimesTen特點點完全全居居于于內(nèi)內(nèi)存存,,對對于于CPU,磁盤盤的的IO壓力力非非常常低低。。支持持事事物物兼容容標(biāo)標(biāo)準(zhǔn)準(zhǔn)SQLOracleTimesTen安裝裝腳腳本本tar––zxvftimesten112241.linux86.tar.gz解壓縮縮文文件件./setup啟動動安安裝裝文文件件一一路路enter回車車就就可可以以了了的的安裝裝后后的的進(jìn)進(jìn)程程查查看看,,一一共共有有4個進(jìn)進(jìn)程程。。啟動動./ttdaemonadmin–start關(guān)閉閉./ttdaemonadmin-stopNoSQL-HBaseHBase是什什么么??HBase有什什么么特特點點??HBase在什什么么場場景景下下適適用用??HBase具體體怎怎么么用用??在用用HBase中碰碰到到的的問問題題??HBase是什什么么??Hbase是個個分分布布式式的的面面向向列列的的非非結(jié)結(jié)構(gòu)構(gòu)化化數(shù)數(shù)據(jù)據(jù)庫庫,,是是Hadoop的子子項項目目。。HBase是GoogleBigtable的開開源源實實現(xiàn)現(xiàn)。。HBase利用用HadoopHDFS作為為其其文文件件存存儲儲系系統(tǒng)統(tǒng)。。HBase利用用HadoopMapReduce來處處理理HBase中的的海海量量數(shù)數(shù)據(jù)據(jù)。。HBase利用用Zookeeper來管管理理。。HBase能干干嘛嘛??作為為存存儲儲層層來來存存儲儲非非可可靠靠性性的的海海量量數(shù)數(shù)據(jù)據(jù),,如如日日志志,,評評論論,,訪訪問問記記錄錄HBase特點點??高可可靠靠性性高效效性性面向向列列可伸伸縮縮可在在廉廉價價PCServer搭建建大大規(guī)規(guī)模模結(jié)結(jié)構(gòu)構(gòu)化化存存儲儲集集群群HBase適用用場場景景??數(shù)據(jù)據(jù)量量巨巨大大,,千千萬萬或或者者是是億億級級別別以以上上。。實時時性性要要求求不不高高,,比比如如離離線線計計算算。。Hbase體系系結(jié)結(jié)構(gòu)構(gòu)HBase具體體用用法法??

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論