一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

NoSQL架構(gòu)實(shí)踐(二)——以NoSQL為主

  前面一篇《NoSQL架構(gòu)實(shí)踐(一)——以NoSQL為輔》主要介紹了以NoSQL為輔助的架構(gòu),這種架構(gòu)實(shí)施起來(lái)比較簡(jiǎn)單,易于理解,由于其中也使用了傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),讓開(kāi)發(fā)者更容易控制NoSQL帶來(lái)的風(fēng)險(xiǎn)。接下來(lái)我們繼續(xù)深入下去,換另外一個(gè)角度,“以NoSQL為主”來(lái)架構(gòu)系統(tǒng)。

 ?。ㄈ┘僋oSQL架構(gòu)

  只使用NoSQL作為數(shù)據(jù)存儲(chǔ)

圖 4-純NoSQL架構(gòu)

  在一些數(shù)據(jù)結(jié)構(gòu)、查詢(xún)關(guān)系非常簡(jiǎn)單的系統(tǒng)中,我們可以只使用NoSQL即可以解決存儲(chǔ)問(wèn)題。這樣不但可以提高性能,還非常易于擴(kuò)展。手機(jī)鳳凰網(wǎng)的前端展示系統(tǒng)就使用了這種方案。

  在一些數(shù)據(jù)庫(kù)結(jié)構(gòu)經(jīng)常變化,數(shù)據(jù)結(jié)構(gòu)不定的系統(tǒng)中,就非常適合使用NoSQL來(lái)存儲(chǔ)。比如監(jiān)控系統(tǒng)中的監(jiān)控信息的存儲(chǔ),可能每種類(lèi)型的監(jiān)控信息都不太一樣。這樣可以避免經(jīng)常對(duì)MySQL進(jìn)行表結(jié)構(gòu)調(diào)整,增加字段帶來(lái)的性能問(wèn)題。

  這種架構(gòu)的缺點(diǎn)就是數(shù)據(jù)直接存儲(chǔ)在NoSQL中,不能做關(guān)系數(shù)據(jù)庫(kù)的復(fù)雜查詢(xún),如果由于需求變更,需要進(jìn)行某些查詢(xún),可能無(wú)法滿(mǎn)足,所以采用這種架構(gòu)的時(shí)候需要確認(rèn)未來(lái)是否會(huì)進(jìn)行復(fù)雜關(guān)系查詢(xún)以及如何應(yīng)對(duì)。

  非常幸運(yùn)的是,有些NoSQL數(shù)據(jù)庫(kù)已經(jīng)具有部分關(guān)系數(shù)據(jù)庫(kù)的關(guān)系查詢(xún)特性,他們的功能介于key-value和關(guān)系數(shù)據(jù)庫(kù)之間,卻具有key-value數(shù)據(jù)庫(kù)的性能,基本能滿(mǎn)足絕大部分web 2.0網(wǎng)站的查詢(xún)需求。比如:

  MongoDB就帶有關(guān)系查詢(xún)的功能,能解決常用的關(guān)系查詢(xún),所以也是一種非常不錯(cuò)的選擇。下面是一些MongoDB的資料:

  雖然Foursquare使用MongoDB的宕機(jī)事件的出現(xiàn)使人對(duì)MongoDB的自動(dòng)Shard提出了質(zhì)疑,但是毫無(wú)疑問(wèn),MongoDB在NoSQL中,是一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù),其單機(jī)性能和功能確實(shí)是非常吸引人的。由于上面的例子有詳細(xì)的介紹,本文就不做MongoDB的使用介紹。

  Tokyo Tyrant數(shù)據(jù)庫(kù)帶有一個(gè)名為table的存儲(chǔ)類(lèi)型,可以對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行關(guān)系查詢(xún)和檢索。一個(gè)table庫(kù)類(lèi)似于MySQL中的一個(gè)表。下面我們看一個(gè)小演示:

  我們要存儲(chǔ)一批用戶(hù)信息,用戶(hù)信息包含用戶(hù)名(name),年齡(age),email,最后訪(fǎng)問(wèn)時(shí)間(lastvisit),地區(qū)(area)。下面為寫(xiě)入的演示代碼:

<?php 
$tt = new TokyoTyrantTable ( "127.0.0.1", 1978 );
$tt->vanish ();//清空
$id = $tt->genUid ();//獲取一個(gè)自增id
//put方法提供數(shù)據(jù)寫(xiě)入。 put ( string $key , array $columns );

$tt->put ( $id, array ("id" => $id, "name" => "zhangsan", "age" => 27, "email" => "zhangsan@gmail.com", "lastvisit" =>strtotime ( "2011-3-5 12:30:00" ), "area" => "北京" ) );
$id = $tt->genUid ();
$tt->put ( $id, array ("id" => $id, "name" => "lisi", "age" => 25, "email" => "lisi@126.com", "lastvisit" => strtotime( "2011-3-3 14:40:44" ), "area" => "北京" ) );
$id = $tt->genUid ();
$tt->put ( $id, array ("id" => $id, "name" => "laowang", "age" => 37, "email" => "laowang@yahoo.com", "lastvisit" =>strtotime ( "2011-3-5 08:30:12" ), "area" => "成都" ) );
$id = $tt->genUid ();
$tt->put ( $id, array ("id" => $id, "name" => "tom", "age" => 21, "email" => "tom@hotmail.com", "lastvisit" =>strtotime ( "2010-12-10 13:12:13" ), "area" => "天津" ) );
$id = $tt->genUid ();
$tt->put ( $id, array ("id" => $id, "name" => "jack", "age" => 21, "email" => "jack@gmail.com", "lastvisit" =>strtotime ( "2011-02-24 20:12:55" ), "area" => "天津" ) );
//循環(huán)打印數(shù)據(jù)庫(kù)的所有數(shù)據(jù)庫(kù)
$it = $tt->getIterator ();
foreach ( $it as $k => $v ) {
print_r ( $v );
}
?>

it知識(shí)庫(kù)NoSQL架構(gòu)實(shí)踐(二)——以NoSQL為主,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 香蕉视频网页 | 日本三区 | 精品国产福利久久久 | 亚洲特一级毛片 | 免费777my性欧美另类 | 亚洲图片校园另激情类小说 | 亚洲第一综合网站 | 91免费精品视频 | 美女又美女又黄又免费网站 | 天天五月天丁香婷婷深爱综合 | 999成人国产精品 | 午夜黄色福利视频 | 亚洲欧洲国产精品 | 91免费国产视频 | 国产精品亚洲四区在线观看 | 国产视频播放 | 图片区小说区激情区偷拍区 | 色综合合久久天天综合绕视看 | 欧美www网站| 国内精品在线播放 | 黄网站视频观看免费 | 国产综合在线观看视频 | 国产综合色在线视频区色吧图片 | 美女又胸大又黄的网站 | 手机在线成人精品视频网 | 亚洲欧洲视频在线观看 | 精品日韩在线视频一区二区三区 | 久久国产精品一区二区三区 | 女人十八黄毛片 | 老司机51精品视频在线观看 | 久久视热这只是精品222 | 国产综合欧美日韩视频一区 | 成年女人男人免费视频播放 | 香蕉成人国产精品免费看网站 | 91精品在线看 | 国产精品天天看特色大片不卡 | 日本一二三高清 | 在线观看91香蕉国产免费 | 成人精品国产亚洲欧洲 | 91区国产福利在线观看午夜 | 一区二区三区在线观看免费 |