




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
NoSQL基本原理及常用開源實現培訓PPT周凱
二〇一四年一月二十七日課程內容NoSQL介紹NoSQL在系統架構中的應用NoSQL產品介紹及對比NoSQL安裝應用演示課程內容NoSQL介紹NoSQL在系統架構中的應用NoSQL產品介紹及對比NoSQL安裝應用演示NoSQL介紹NoSQL基本概念NoSQL數據庫分類NoSQL是什么?NoSQL概念在2009年被提了出來NoSQL最常見的解釋是“non-relational”,“NotOnlySQL”也被很多人接受NoSQL被我們用得最多的當數key-value存儲,當然還有其他的文檔型的、列存儲、圖型數據庫、xml數據庫等。在NoSQL概念提出之前,這些數據庫就被用于各種系統當中,但是卻很少用于web互聯網應用。比方cdb、qdbm、bdb數據庫。傳統關系數據庫的瓶頸傳統的關系數據庫具有不錯的性能,高穩定型,久經歷史考驗,而且使用簡單,功能強大,同時也積累了大量的成功案例。在互聯網領域,MySQL成為了絕對靠前的王者,毫不夸張的說,MySQL為互聯網的開展做出了卓越的奉獻。在90年代,一個網站的訪問量一般都不大,用單個數據庫完全可以輕松應付。在那個時候,更多的都是靜態網頁,動態交互類型的網站不多。到了最近10年,網站開始快速開展。火爆的論壇、博客、sns、微博逐漸引領web領域的潮流。在初期,論壇的流量其實也不大,如果你接觸網絡比較早,你可能還記得那個時候還有文本型存儲的論壇程序,可以想象一般的論壇的流量有多大。Memcached+MySQL后來,隨著訪問量的上升,幾乎大局部使用MySQL架構的網站在數據庫上都開始出現了性能問題,web程序不再僅僅專注在功能上,同時也在追求性能。程序員們開始大量的使用緩存技術來緩解數據庫的壓力,優化數據庫的結構和索引。開始比較流行的是通過文件緩存來緩解數據庫壓力,但是當訪問量繼續增大的時候,多臺web機器通過文件緩存不能共享,大量的小文件緩存也帶了了比較高的IO壓力。在這個時候,Memcached就自然的成為一個非常時尚的技術產品。Memcached作為一個獨立的分布式的緩存效勞器,為多個web效勞器提供了一個共享的高性能緩存效勞,在Memcached效勞器上,又開展了根據hash算法來進行多臺Memcached緩存效勞的擴展,然后又出現了一致性hash來解決增加或減少緩存效勞器導致重新hash帶來的大量緩存失效的弊端。當時,如果你去面試,你說你有Memcached經驗,肯定會加分的。性能優化方向Mysql主從讀寫別離由于數據庫的寫入壓力增加,Memcached只能緩解數據庫的讀取壓力。讀寫集中在一個數據庫上讓數據庫不堪重負,大局部網站開始使用主從復制技術來到達讀寫別離,以提高讀寫性能和讀庫的可擴展性。Mysql的master-slave模式成為這個時候的網站標配了。分表分庫隨著web2.0的繼續高速開展,在Memcached的高速緩存,MySQL的主從復制,讀寫別離的根底之上,這時MySQL主庫的寫壓力開始出現瓶頸,而數據量的持續猛增,由于MyISAM使用表鎖,在高并發下會出現嚴重的鎖問題,大量的高并發MySQL應用開始使用InnoDB引擎代替MyISAM。同時,開始流行使用分表分庫來緩解寫壓力和數據增長的擴展問題。這個時候,分表分庫成了一個熱門技術,是業界討論的熱門技術問題。也就在這個時候,MySQL推出了還不太穩定的表分區,這也給技術實力一般的公司帶來了希望。雖然MySQL推出了MySQLCluster集群,但是由于在互聯網幾乎沒有成功案例,性能也不能滿足互聯網的要求,只是在高可靠性上提供了非常大的保證。MySQL的擴展性瓶頸在互聯網,大局部的MySQL都應該是IO密集型的,事實上,如果你的MySQL是個CPU密集型的話,那么很可能你的MySQL設計得有性能問題,需要優化了。大數據量高并發環境下的MySQL應用開發越來越復雜,也越來越具有技術挑戰性。分表分庫的規那么把握都是需要經驗的。雖然有像淘寶這樣技術實力強大的公司開發了透明的中間件層來屏蔽開發者的復雜性,但是防止不了整個架構的復雜性。分庫分表的子庫到一定階段又面臨擴展問題。還有就是需求的變更,可能又需要一種新的分庫方式。MySQL數據庫也經常存儲一些大文本字段,導致數據庫表非常的大,在做數據庫恢復的時候就導致非常的慢,不容易快速恢復數據庫。比方1000萬4KB大小的文本就接近40GB的大小,如果能把這些數據從MySQL省去,MySQL將變得非常的小。關系數據庫很強大,但是它并不能很好的應付所有的應用場景。MySQL的擴展性差〔需要復雜的技術來實現〕,大數據下IO壓力大,表結構更改困難,正是當前使用MySQL的開發人員面臨的問題。NoSQL誕生的原因關系型數據庫面臨的問題擴展困難:由于存在類似Join這樣多表查詢機制,使得數據庫在擴展方面很艱難;讀寫慢:這種情況主要發生在數據量到達一定規模時由于關系型數據庫的系統邏輯非常復雜,使得其非常容易發生死鎖等的并發問題,所以導致其讀寫速度下滑非常嚴重;本錢高:企業級數據庫的License價格很驚人,并且隨著系統的規模,而不斷上升;有限的支撐容量:現有關系型解決方案還無法支撐Google這樣海量的數據存儲;數據庫訪問的新需求低延遲的讀寫速度:應用快速地反響能極大地提升用戶的滿意度;支撐海量的數據和流量:對于搜索這樣大型應用而言,需要利用PB級別的數據和能應對百萬級的流量;大規模集群的管理:系統管理員希望分布式應用能更簡單的部署和管理;龐大運營本錢的考量:IT經理們希望在硬件本錢、軟件本錢和人力本錢能夠有大幅度地降低;NoSQL數據庫的共有原那么假設失效是必然發生的NOSQL實現都建立在硬盤、機器和網絡都會失效這些假設之上。我們不能徹底阻止這些時效,我們需要讓我們的系統能夠在即使非常極端的條件下也能應付這些失效。對數據進行分區最小化了失效帶來的影響,也將讀寫操作的負載分布到了不同的機器上。保存同一數據的多個副本大局部NOSQL實現都基于數據副本的熱備份來保證連續的高可用性。一些實現提供了API,可以控制副本的復制,也就是說,當你存儲一個對象的時候,你可以在對象級指定你希望保存的副本數。查詢支持在這個方面,不同的實現有相當本質的區別。不同實現的一個共性在于哈希表中的key/value匹配。關系數據庫VSNoSQL關系數據庫表都是存儲一些格式化的數據結構每個元組字段的組成都一樣即使不是每個元組都需要所有的字段,但數據庫會為每個元組分配所有的字段這樣的結構可以便于表與表之間進行連接等操作NoSQL以鍵值對存儲,它的結構不固定每一個元組可以有不一樣的字段每個元組可以根據需要增加一些自己的鍵值對不會局限于固定的結構,可以減少一些時間和空間的開銷關系數據庫VSNoSQL關系數據庫分布式關系型數據庫中強調的ACID分別是:原子性〔Atomicity〕、一致性〔Consistency〕、隔離性〔Isolation〕、持久性〔Durability〕。ACID的目的就是通過事務支持,保證數據的完整性和正確性NoSQL對于許多互聯網應用來說,對于一致性要求可以降低,而可用性(Availability)的要求那么更為明顯,從而產生了弱一致性的理論BASE。BASE分別是英文:Basically,Available,Soft-state,EventualConsistency的縮寫,這個模型是反ACID模型。NoSQL和關系數據庫NoSQL數據庫僅僅是關系數據庫在某些方面〔性能、擴展〕的一個彌補單從功能上講,NoSQL的幾乎所有的功能,在關系數據庫上都能夠滿足。一般會把NoSQL和關系數據庫進行結合使用,各取所長,各得其所。在某些應用場合,比方一些配置的關系鍵值映射存儲、用戶名和密碼的存儲、Session會話存儲等等用NoSQL完全可以替代關系數據庫(如:MySQL)存儲。不但具有更高的性能,而且開發也更加方便NoSQL的優缺點優點簡單的擴展 典型例子是Cassandra,由于其架構是類似于經典的P2P,所以能通過輕松地添加新的節點來擴展這個集群;快速的讀寫 主要例子有Redis,由于其邏輯簡單,而且純內存操作,使得其性能非常出色,單節點每秒可以處理超過10萬次讀寫操作;低廉的本錢 這是大多數分布式數據庫共有的特點,因為主要都是開源軟件,沒有昂貴的License本錢;缺乏不提供對SQL的支持 如果不支持SQL這樣的工業標準,將會對用戶產生一定的學習和應用遷移本錢;支持的特性不夠豐富 現有產品所提供的功能都比較有限,大多數NoSQL數據庫都不支持事務,也不像MSSQLServer和Oracle那樣能提供各種附加功能,比方BI和報表等;現有產品的不夠成熟 大多數產品都還處于初創期,和關系型數據庫幾十年的完善不可同日而語;總結NoSQL數據庫的出現,彌補了關系數據〔比方MySQL〕在某些方面的缺乏,在某些方面能極大的節省開發本錢和維護本錢。MySQL和NoSQL都有各自的特點和使用的應用場景,兩者的緊密結合將會給web2.0的數據庫開展帶來新的思路。讓關系數據庫關注在關系上,NoSQL關注在存儲上。NoSQL介紹NoSQL基本概念NoSQL數據庫分類按CAP分類一致性〔Consistency〕任何一個讀操作總是能讀取到之前完成的寫操作結果,也就是在分布式環境中,多點的數據是一致的;可用性〔Availability〕每一個操作總是能夠在確定的時間內返回,也就是系統隨時都是可用的。分區容忍性〔PartitionTolerance〕在出現網絡分區〔比方斷網〕的情況下,別離的系統也能正常運行。一個分布式系統不能同時滿足一致性,可用性和分區容錯性這三個需求,最多只能同時滿足兩個。CAP理論標題關注一致性和可用性的(CA)這些數據庫對于分區容忍性方面比較不感冒,主要采用復制〔Replication〕這種方式來保證數據的平安性,常見的CA系統有:傳統關系型數據庫,比方Postgres和MySQL等(Relational)Vertica(Column-oriented)AsterData(Relational)Greenplum(Relational)按CAP分類關注一致性和分區容忍性的(CP)這種系統將數據分布在多個網絡分區的節點上,并保證這些數據的一致性,但是對于可用性的支持方面有問題,比方當集群出現問題的話,節點有可能因無法確保數據是一致性的而拒絕提供效勞,主要的CP系統有:BigTable(Column-oriented)Hypertable(Column-oriented)HBase(Column-oriented)MongoDB(Document)Terrastore(Document)Redis(Key-value)Scalaris(Key-value)MemcacheDB(Key-value)BerkeleyDB(Key-value)按CAP分類關于可用性和分區容忍性的(AP)這類系統主要以實現“最終一致性〔EventualConsistency〕”來確??捎眯院头謪^容忍性,AP的系統有:Dynamo(Key-value)Voldemort(Key-value)TokyoCabinet(Key-value)KAI(Key-value)Cassandra(Column-oriented)CouchDB(Document-oriented)SimpleDB(Document-oriented)Riak(Document-oriented)按CAP分類按數據模型分類NoSQL-三種主流的數據模型Column-oriented〔列式〕主要圍繞著“列〔Column〕”,而非“行〔Row〕”進行數據存儲屬于同一列的數據會盡可能地存儲在硬盤同一個頁〔Page〕中大多數列式數據庫都支持ColumnFamily這個特性〔很多類似數據倉庫〔DataWarehouse〕的應用,雖然每次查詢都會處理很多數據,但是每次所涉及的列并沒有很多〕特點:比較適合匯總〔Aggregation〕和數據倉庫這類應用。Key-value類似常見的HashTable,一個Key對應一個Value,但是其能提供非??斓牟樵兯俣取⒋蟮臄祿娣帕亢透卟l操作,非常適合通過主鍵對數據進行查詢和修改等操作,雖然不支持復雜的操作,但可通過上層的開發來彌補這個缺陷。Document〔文檔〕類似常見的HashTable,一個Key對應一個Value,其能提供非常快的查詢速度、大的數據存放量和高并發操作,非常適合通過主鍵對數據進行查詢和修改等操作,雖然不支持復雜的操作,但是可以通過上層的開發來彌補這個缺陷。NoSQL按數據模型分類選擇適宜的NoSQLNoSQL數據庫的出現,彌補了關系數據〔比方MySQL〕在某些方面的缺乏,在某些方面能極大的節省開發本錢和維護本錢。MySQL和NoSQL都有各自的特點和使用的應用場景,兩者的緊密結合將會給web2.0的數據庫開展帶來新的思路。讓關系數據庫關注在關系上,NoSQL關注在存儲上。課程內容NoSQL介紹NoSQL在系統架構中的應用NoSQL產品介紹及對比NoSQL安裝應用演示NoSQL在系統架構中的應用以NoSQL為輔以NoSQL為主以NoSQL為緩存以NoSQL為輔NoSQL作為鏡像不改變原有的以MySQL作為存儲的架構,使用NoSQL作為輔助鏡像存儲,用NoSQL的優勢輔助提升性能。在原有基于MySQL數據庫的架構上增加了一層輔助的NoSQL存儲,在寫入MySQL數據庫后,同時寫入到NoSQL數據庫,讓MySQL和NoSQL擁有相同的鏡像數據在某些可以根據主鍵查詢的地方,使用高效的NoSQL數據庫查詢NoSQL為鏡像〔同步模式〕通過MySQL把數據同步到NoSQL中,,是一種對寫入透明但是具有更高技術難度一種模式適用于現有的比較復雜的老系統,通過修改代碼不易實現,可能引起新的問題。同時也適用于需要把數據同步到多種類型的存儲中。以NoSQL為輔MySQL和NoSQL組合MySQL中只存儲需要查詢的小字段,NoSQL存儲所有數據。把需要查詢的字段,一般都是數字,時間等類型的小字段存儲于MySQL中,根據查詢建立相應的索引,其他不需要的字段,包括大文本字段都存儲在NoSQL中。在查詢的時候,我們先從MySQL中查詢出數據的主鍵,然后從NoSQL中直接取出對應的數據即可。以NoSQL為輔NoSQL在系統架構中的應用以NoSQL為輔以NoSQL為主以NoSQL為緩存純NoSQL架構在一些數據結構、查詢關系非常簡單的系統中,我們可以只使用NoSQL即可以解決存儲問題。在一些數據庫結構經常變化,數據結構不定的系統中,就非常適合使用NoSQL來存儲。比方監控系統中的監控信息的存儲,可能每種類型的監控信息都不太一樣。有些NoSQL數據庫已經具有局部關系數據庫的關系查詢特性,他們的功能介于key-value和關系數據庫之間,卻具有key-value數據庫的性能,根本能滿足絕大局部web2.0網站的查詢需求。以NoSQL為主以NoSQL為數據源的架構數據直接寫入NoSQL,再通過NoSQL同步協議復制到其他存儲。根據應用的邏輯來決定去相應的存儲獲取數據。應用程序只負責把數據直接寫入到NoSQL數據庫,然后通過NoSQL的復制協議,把NoSQL數據的每次寫入,更新,刪除操作都復制到MySQL數據庫中。同時,也可以通過復制協議把數據同步復制到全文檢索實現強大的檢索功能。這種架構需要考慮數據復制的延遲問題,這跟使用MySQL的master-salve模式的延遲問題是一樣的,解決方法也一樣。以NoSQL為主NoSQL在系統架構中的應用以NoSQL為輔以NoSQL為主以NoSQL為緩存內存模式Memcached提供了相當高的讀寫性能,在互聯網開展過程中,一直是緩存效勞器的首選。NoSQL數據庫Redis又為我們提供了功能更加強大的內存存儲功能。跟Memcached比,Redis的一個key的可以存儲多種數據結構Strings、Hashes、Lists、Sets、Sortedsets。Redis不但功能強大,而且它的性能完全超越大名鼎鼎的Memcached。Redis支持List、hashes等多種數據結構的功能,提供了更加易于使用的api和操作性能,比方對緩存的list數據的修改。以NoSQL為緩存由于NoSQL數據庫天生具有高性能、易擴展的特點,所以我們常常結合關系數據庫,存儲一些高性能的、海量的數據。從另外一個角度看,根據NoSQL的高性能特點,它同樣適合用于緩存數據。用NoSQL緩存數據可以分為內存模式和磁盤持久化模式。持久化模式雖然基于內存的緩存效勞器具有高性能,低延遲的特點,但是內存本錢高、內存數據易失卻不容無視。大局部互聯網應用的特點都是數據訪問有熱點,也就是說,只有一局部數據是被頻繁訪問的。其實NoSQL數據庫內部也是通過內存緩存來提高性能的,通過一些比較好的算法把熱點數據進行內存cache非熱點數據存儲到磁盤以節省內存占用使用NoSQL來做緩存,由于其不受內存大小的限制,我們可以把一些不常訪問、不怎么更新的數據也緩存起來。以NoSQL為緩存課程內容NoSQL介紹NoSQL在系統架構中的應用NoSQL產品介紹及對比NoSQL安裝應用演示NoSQL產品介紹及比照Memcache Redis MongoDB OracleTimesTenHbase Memcache是什么?Memcache有什么特點?Memcache在什么場景下適用?Memcache具體怎么用?在用Memcache中碰到的問題?NoSQL-MemcacheMemcache是什么Memcache是個高性能的基于內存的分布式緩存系統,Memcache的分布式是基于客戶端的Key的hash來做均衡,是個偽分布式的系統。Memcache有2個組件,一個客戶端〔java〕,一個效勞器端c編寫。NoSQL-MemcacheMemcache的特點基于內存〔但是重啟了后,數據喪失〕。提供簡單的get,set方法。緩存對象只能小于1M。安裝,使用比較簡單。NoSQL-MemcacheMemcache的使用場景中小型網站應用中來存放非可靠性的只讀數據。例如存放用戶的信息。網站的計數。數據庫DAO前的行記錄緩存。全局的代碼參數。NoSQL-MemcacheMemcache具體怎么用安裝libevent安裝./configure-prefix=/usrmakemakeinstallNoSQL-MemcacheMemcache具體怎么用memcache安裝./configure-with-libevent=/usrmakemakeinstallNoSQL-MemcacheMemcache的啟動參數啟動./memcached-d-m10240-p11211-uroot啟動參數啟動參數說明-d選項是啟動一個守護進程,后臺掛起跑-m是分配給Memcache使用的內存數量,單位是MB-u是運行Memcache的用戶-l是監聽的效勞器IP地址,如果有多個地址的話,-p是設置Memcache監聽的端口-c選項是最大運行的并發連接數,默認是1024,-P是設置保存Memcache的pid文件關閉killallmemcachedNoSQL-MemcacheMemcache-Java客戶端spymemcached官方,單線程
Javamemcachedclient
memcache-client-forjavaNoSQL-MemcacheJava客戶端操作MemcacheNoSQL-MemcacheMemcache中碰到的問題Memcache無文件備份機制,機器重啟,數據掉失。只能存放1M的內容,有一定的局限性。偽分布式存儲,JAVA客戶端做HASH的路由,節點的增加和宕機都是會造成數據的掉失。只提供了核心的2個get/set命令,無其他豐富的API節點的增加和減少導致的數據問題NoSQL-MemcacheHash一致性問題解決方案1主從模式,主從模式之間保持數據同步.2一致性Hash算法.3Redis來代替Memcache.NoSQL-MemcacheHash一致性NoSQL-MemcacheHash一致性NoSQL-MemcacheNoSQL產品介紹及比照Memcache Redis MongoDB OracleTimesTenHbase NoSQL-RedisRedis是什么?Redis能干嗎?Redis有什么特點?Redis在什么場景下適用?Redis具體怎么用?在用Redis中碰到的問題?Redis是什么?Redis是一個用c語言寫的類似Memcache的key-value的存儲系統,它比Memcache提供了更多的API接口和更好的并發性能,可以支持10萬并發的讀寫,建議用Redis代替Memcahe。Redis是基于內存的,因此部署Redis的機器對于內存是非常有高的要求的,Redis是會把數據實時寫到內存中,再定時同步到文件。NoSQL-RedisRedis能干嘛?Redis可以當作數據庫來用,但是有缺陷,在可靠性上,沒有Oracle關系型數據庫來的穩定。可以作為持久層的Cache層??梢跃彺嫦旅娴臄祿旖Y構。計數排行典范,最新瀏覽的數據隊列〔訂閱關系〕NoSQL-RedisRedis特點?完全居于內存,數據實時的讀寫內存,定時閃回到文件中讀寫速度快支持高并發量,官方宣傳支持10萬級別的并發讀寫支持機器重啟后的,重新加載模式,不會掉數據NoSQL-RedisRedis適用場景?在非可靠數據存儲中,可以作為數據持久層或者是數據緩存區。對于讀寫壓力比較大,實時性要求比較高的場景下。關系型數據庫不能勝任的模型下的場景。例如在SNS中訂閱關系。NoSQL-RedisRedis具體用法?安裝,啟動,關閉,配置,Java訪問操作安裝$makeinstallNoSQL-RedisRedis–啟動&關閉啟動./src/redis-server/etc/redis.conf&關閉./src/redis-clishutdownNoSQL-RedisRedis的配置-根本配置Redis的核心配置文件,只有一個,就是redis.conf文件,下面是列舉了核心的配置項。
配置項
值字段意義daemonizeno或者yes是不是需要在后臺運行pidfile/var/run/redis.pidpid文件port6379啟動端口bind127.0.0.1綁定IP,只有制定的IP地址才能夠訪問redis實例timeout0一個客戶端空閑多少秒后關閉連接databases16數據庫數loglevelDebugVerboseNoticewarningdebug開發和測試的時候配置verbose比debug信息少點notice基本信息,生產環境建議配置這個warning嚴重錯誤的時候Redis的配置-快照配置
配置項
值字段意義save9001指出在多長時間內,有多少次更新操作,就將數據同步到數據文件rdb,在15分鐘內,有1個key被改變就同步到文件中去rdbcompressionyes當導出到.rdb數據庫時是否用LZF壓縮字符串對象rdbchecksumyes存儲和加載rdb文件時校驗dbfilenamedump.rdb數據庫的文件名dir./工作目錄Redis的配置-同步配置
配置項
值字段意義slaveof127.0.0.16379主服務器地址masterauth<master-password>從服務器連接主服務器的時候的密碼slave-serve-stale-dataYes/no當從庫正在做復制的同步工作的時候,從庫的工作模式,配置成yes了后繼續相應客戶的請求,配置成no了后,不相應客戶的請求。slave-read-onlyyes配置從庫為只讀模式,這個屬性只需要在主庫上配置,在從庫上配置沒什么意義的repl-ping-slave-period10從庫定時向主庫發送Ping的命令repl-timeout60從庫定時向主庫發送Ping的命令的超時時間slave-priority100如果主庫掛了的,會尋找找一個slave-priority最小的一個,來變成主庫。Redis的配置-平安配置
配置項
值字段意義requirepassfoobaredredis的密碼,可以理解成Oracle數據庫的連接密碼一樣的。maxclients10000最大連接數maxmemory<bytes>最大內存數,給Redis使用的最大內存數。maxmemory-policyvolatile-lruvolatile-randomallkeys->randomvolatile-ttlnoeviction當Redis已經存到最大內存數的時候,這個時候 Redis使用的策略,下面是5個策略。volatile-lru->根據LRU算法生成的過期時間來刪除。allkeys-lru->根據LRU算法刪除任何key。volatile-random->根據過期設置來隨機刪除key。allkeys->random->無差別隨機刪。volatile-ttl->根據最近過期時間來刪除(輔以TTL)noeviction->誰也不刪,直接在寫操作時返回錯誤Redis的配置-數據追加配置
配置項
值字段意義appendonlynoRedis是異步的把數據寫到文件中去的,有時候機器重啟會導致正在寫入的數據丟失掉的,如果appendonly屬性配置成yes了后,Redis會把數據實時的寫到appendonly.aof文件中去,一旦Redis重啟的時候,就會加載這個文件的,那樣的話,數據就不會丟掉了的.appendfilenameappendonly.aof累加文件名字appendfsyncNoAlwayseverysecalways馬上立即寫到操作系統的文件中去,準確性最高,但是代價也是最高的,速度比較慢了的,并且是IO開銷是非常高的,配置成no不是立刻寫,everysec每秒寫一次no-appendfsync-on-rewriteno當Aoflog進行重寫時,是否寫日志時fsyncauto-aof-rewrite-percentage100當日志文件超過原始的日志文件的多少的時候,就開啟重寫機制auto-aof-rewrite-min-size64M這次寫入大小,超過多少大小了后,就開啟重寫機制Java操作RedisJava客戶端別表Jedis官方推薦Jredis推薦JDBC-Jredis不推薦RJC不推薦Redis-protocol不推薦NoSQL-RedisJava操作RedisRedis高級特性主從模式復制Redis支持主從同步。數據可以從主效勞器向任意數量的從效勞器上同步,從效勞器可以是關聯其他從效勞器的主效勞器。這使得Redis可執行單層樹復制。從盤可以有意無意的對數據進行寫操作。發布訂閱模式由于完全實現了發布/訂閱機制,使得從數據庫在任何地方同步樹時,可訂閱一個頻道并接收主效勞器完整的消息發布記錄。同步對讀取操作的可擴展性和數據冗余很有幫助。NoSQL-RedisNoSQL產品介紹及比照Memcache Redis MongoDB OracleTimesTenHbase Mongdb是什么?Mongodb是一個底層用C++語言編寫的一個分布式文件存儲系統,可以簡單的理解成一個類Mysql數據庫的分布式文件系統。Mongodb底層是用C++語言編寫的。一個分布式的文件存儲系統NoSQL-MongdbMongdb能干嘛?作為MySQL的代替品,存儲海量的相對非可靠的數據,例如群眾點評的評論.淘寶網
NoSQL-MongdbMongdb特點?天生有分布式的優點〔最強的一個優點〕。海量文件,文本類型數據的存儲。性能卓越的海量數據的存儲情況下的讀寫性能。NoSQL-MongdbMongdb的數據模型Mongodb適用場景?MySQL的代替品或者是半代替品〔對復雜查詢要求不高的情況下〕讀壓力比寫的壓力大的情況下的文件和文本類型的數據,并且數據量比較大。NoSQL-MongdbMongdb具體用法?安裝,啟動,關閉,配置,Java訪問操作安裝解壓縮tar–xzvfmongodb-linux-i686-2.2.2.tgz新建數據庫目錄mkdir–p/data/dbNoSQL-MongdbMongdb–啟動&關閉啟動./mongod&關閉效勞端關閉 沒有掛起跑的話直接ctrl+c 掛起跑的話的話直接kill進程號 客戶端關閉db.shutdownerver()
NoSQL-MongdbJava操作MongodbJava客戶端列表mongo-java-drivers://github/mongodb/mongo-java-driverNoSQL-MongdbJava操作MongodbNoSQL-MongdbNoSQL產品介紹及比照Memcache Redis MongoDB OracleTimesTenHbase NoSQL-OracleTimesTenTimesTen是什么?TimesTen能干嗎?TimesTen有什么特點?TimesTen在什么場景下適用?TimesTen具體怎么用?在用TimesTen中碰到的問題?OracleTimesTen是什么OracleTimesTen是HP實驗室人員在1992年做的一個內存數據庫產品,后來惠普實驗室的人成立了TimesTen公司,Oracle在2005年的時候把TimesTen收購了的。NoSQL-OracleTimesTenOracleTimesTen特點及時響應完全居于內存,對于CPU,磁盤的IO壓力非常低。支持事物兼容標準SQL高性能高可用性
主從模式NoSQL-OracleTimesTenTT的物理組成NoSQL-OracleTimesTenTT物理結構Sharedlibraries:共享庫:可以理解為訪問數據的驅動程序內存中的數據結構:表,索引在內存的數據系統進程:管理程序:備份程序磁盤上的檢查點和日志文件:數據和日志存入到磁盤文件上。NoSQL-OracleTimesTenTT的特性復制負載均衡可以作為Oracle數據庫的前端Cache,不支持其他數據庫支持本地的高速訪問和網絡訪問方式可靠性高。支持完整日志,支持鏡像復制功能。不是開源代碼,需要較高費用不支持存儲過程和觸發器NoSQL-OracleTimesTenTimesTen復制NoSQL-OracleTimesTenOracleTimesTen適用場景實時計費系統(移動,聯通)基金,股票實時撮合交易系統網站Cache層或者是持久層
CCTV/
把用戶的信息存儲在TT中而不是關系數據庫中NoSQL-OracleTimesTenNoSQL-OracleTimesTenRDBMS特點1.數據以表格的形式出現2.每行為各種記錄名稱3.每列為記錄名稱所對應的數據域4.許多的行和列組成一張表單5.假設干的表單組成databaseRDBMS指的就是關系型
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025書店員工聘用合同
- 2025簽訂合同繳納社保即為勞動合同關系確立
- 2025食品冷鏈物流合同
- 2025娛樂公司員工勞動合同模板
- 2025建筑設備租賃合同書
- 2025公寓建筑合同模板
- 2025財務分析咨詢合同
- 2025租賃及服務合同
- 2025汽車租賃合同(范本x格式)
- 2025版項目合同范本下載
- 2024企業咨詢服務與戰略規劃合同
- TCUWA40055-2023排水管道工程自密實回填材料應用技術規程
- 糖尿病病人的麻醉管理
- 大型活動策劃與管理第九章 大型活動知識產權保護
- 2024年新課標培訓2022年小學英語新課標學習培訓課件
- 精神科患者便秘護理
- 煤礦反三違認定培訓課件
- 超高清視頻技術
- 2024年安全標志標識標準圖冊
- 航空航天知識講座學習課件
- 浙江省嘉興市2024-2025學年高一化學下學期期末考試試題含解析
評論
0/150
提交評論