天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

  (三)純NoSQL架構(gòu)

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

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

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

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

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

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

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

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

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

  我們要存儲一批用戶信息,用戶信息包含用戶名(name),年齡(age),email,最后訪問時間(lastvisit),地區(qū)(area)。下面為寫入的演示代碼:

<?php 
$tt = new TokyoTyrantTable ( "127.0.0.1", 1978 );
$tt->vanish ();//清空
$id = $tt->genUid ();//獲取一個自增id
//put方法提供數(shù)據(jù)寫入。 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ù)庫的所有數(shù)據(jù)庫
$it = $tt->getIterator ();
foreach ( $it as $k => $v ) {
print_r ( $v );
}
?>

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

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

主站蜘蛛池模板: 秋霞伦理电影在线看 | 乳女教师欲乱动漫无修版动画 | 无码丰满人妻熟妇区 | 中文字幕本庄优花喂奶 | 西西人体一级裸片 | 久久九九亚洲精品 | 色欲AV无码乱码精品国产 | 九九热这里有精品 | 亚洲深夜在线 | 偷上邻居熟睡少妇 | 免费毛片播放 | 妈妈的朋友6未删减版完整在线 | 色妞色视频一区二区三区四区 | 日韩一区二区三区四区区区 | 色美妞论坛 | 日韩国产精品欧美一区二区 | 热思思 | 丰满的大白屁股ass 丰满大屁俄罗斯肥女 | 国产原创剧情麻豆在线 | 好男人午夜www视频在线观看 | 国产免费人视频在线观看免费 | 黑人操日本女人 | 亚洲伊人网站 | 亚洲国产精品日本无码网站 | 刺激性视频黄页 | 强伦姧久久久久久久久久 | 美女搞鸡网站 | 国产在线观看91精品 | 医生含着我的奶边摸边做 | 亚洲伊人成综合人影院 | 日韩精品久久日日躁夜夜躁影视 | 成人亚洲视频在线观看 | 老司机福利在 线影院 | 嗯啊…跟校草在教室里做h 嗯 用力啊 嗯 c我 啊哈老师 | 美女拔萝卜 | 帝王被大臣们调教高肉 | 色婷婷狠狠97成为人免费 | 国产成人在线视频网站 | 又爽又黄又粗又大免费视频 | 国产伦精品一区二区免费 | 如懿传免费观看在线全集 |