欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

為什么整nosql,為什么整天頭暈暈的老想睡覺

幾種nosql的淺談

1、性能

創(chuàng)新互聯(lián)公司是一家專業(yè)提供商州企業(yè)網站建設,專注與成都網站制作、成都網站建設、H5技術、小程序制作等業(yè)務。10年已為商州眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網絡公司優(yōu)惠進行中。

都比較高,性能對我們來說應該都不是瓶頸。

總體來講,TPS 方面 redis 和 memcache 差不多,要大于 mongodb。

2、操作的便利性

memcache 數據結構單一。(key-value)

redis 豐富一些,數據操作方面,redis 更好一些,較少的網絡 IO 次數,同時還提供 list,set,

hash 等數據結構的存儲。

mongodb 支持豐富的數據表達,索引,最類似關系型數據庫,支持的查詢語言非常豐富。

3、內存空間的大小和數據量的大小

redis 在 2.0 版本后增加了自己的 VM 特性,突破物理內存的限制;可以對 key value 設置過

期時間(類似 memcache)

memcache 可以修改最大可用內存,采用 LRU 算法。Memcached 代理軟件 magent,比如建立

10 臺 4G 的 Memcache 集群,就相當于有了 40G。 magent -s 10.1.2.1 -s 10.1.2.2:11211 -b

10.1.2.3:14000 mongoDB 適合大數據量的存儲,依賴操作系統(tǒng) VM 做內存管理,吃內存也比較厲害,服務

不要和別的服務在一起。

4、可用性(單點問題)

對于單點問題,

redis,依賴客戶端來實現分布式讀寫;主從復制時,每次從節(jié)點重新連接主節(jié)點都要依賴整

個快照,無增量復制,因性能和效率問題,

所以單點問題比較復雜;不支持自動 sharding,需要依賴程序設定一致 hash 機制。

一種替代方案是,不用 redis 本身的復制機制,采用自己做主動復制(多份存儲),或者改成

增量復制的方式(需要自己實現),一致性問題和性能的權衡

Memcache 本身沒有數據冗余機制,也沒必要;對于故障預防,采用依賴成熟的 hash 或者環(huán)

狀的算法,解決單點故障引起的抖動問題。

mongoDB 支持 master-slave,replicaset(內部采用 paxos 選舉算法,自動故障恢復),auto sharding 機制,對客戶端屏蔽了故障轉移和切分機制。

5、可靠性(持久化)

對于數據持久化和數據恢復,

redis 支持(快照、AOF):依賴快照進行持久化,aof 增強了可靠性的同時,對性能有所影

memcache 不支持,通常用在做緩存,提升性能;

MongoDB 從 1.8 版本開始采用 binlog 方式支持持久化的可靠性

6、數據一致性(事務支持)

Memcache 在并發(fā)場景下,用 cas 保證一致性redis 事務支持比較弱,只能保證事務中的每個操作連續(xù)執(zhí)行

mongoDB 不支持事務

7、數據分析

mongoDB 內置了數據分析的功能(mapreduce),其他不支持

8、應用場景

redis:數據量較小的更性能操作和運算上

memcache:用于在動態(tài)系統(tǒng)中減少數據庫負載,提升性能;做緩存,提高性能(適合讀多寫

少,對于數據量比較大,可以采用 sharding)

MongoDB:主要解決海量數據的訪問效率問題。

表格比較:

memcache redis 類型 內存數據庫 內存數據庫

數據類型 在定義 value 時就要固定數據類型 不需要

有字符串,鏈表,集 合和有序集合

虛擬內存 不支持 支持

過期策略 支持 支持

分布式 magent master-slave,一主一從或一主多從

存儲數據安全 不支持 使用 save 存儲到 dump.rdb 中

災難恢復 不支持 append only file(aof)用于數據恢復

性能

1、類型——memcache 和 redis 都是將數據存放在內存,所以是內存數據庫。當然,memcache 也可用于緩存其他東西,例如圖片等等。

2、 數據類型——Memcache 在添加數據時就要指定數據的字節(jié)長度,而 redis 不需要。

3、 虛擬內存——當物理內存用完時,可以將一些很久沒用到的 value 交換到磁盤。

4、 過期策略——memcache 在 set 時就指定,例如 set key1 0 0 8,即永不過期。Redis 可以通

過例如 expire 設定,例如 expire name 10。

5、 分布式——設定 memcache 集群,利用 magent 做一主多從;redis 可以做一主多從。都可

以一主一從。

6、 存儲數據安全——memcache 斷電就斷了,數據沒了;redis 可以定期 save 到磁盤。

7、 災難恢復——memcache 同上,redis 丟了后可以通過 aof 恢復。

Memecache 端口 11211

yum -y install memcached

yum -y install php-pecl-memcache

/etc/init.d/memcached start memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

-d 啟動一個守護進程

-p 端口

-m 分配的內存是 M

-c 最大運行并發(fā)數-P memcache 的 pid

//0 壓縮(是否 MEMCACHE_COMPRESSED) 30 秒失效時間

//delete 5 是 timeout

為什么大部分nosql不提供分布式事務

像MongoDB, Cassandra, HBase, DynamoDB, 和

Riak這些NoSQL缺乏傳統(tǒng)的原子事務機制,所謂原子事務機制是可以保證一系列寫操作要么全部完成,要么全部不會完成,不會發(fā)生只完成一系列中一兩個

寫操作;因為數據庫不提供這種事務機制支持,開發(fā)者需要自己編寫代碼來確保一系列寫操作的事務機制,比較復雜和測試。

這些NoSQL數據庫不提供事務機制原因在于其分布式特點,一系列寫操作中訪問的數據可能位于不同的分區(qū)服務器,這樣的事務就變成分布式事務,在分

布式事務中實現原子性需要彼此協(xié)調,而協(xié)調是耗費時間的,每臺機器在一個大事務過程中必須依次確認,這就需要一種協(xié)議確保一個事務中沒有任何一臺機器寫操

如何選擇NoSQL數據庫

NoSQL,指的是非關系型的數據庫。隨著互聯(lián)網web2.0網站的興起,傳統(tǒng)的關系數據庫在應付web2.0網站,特別是超大規(guī)模和高并發(fā)的

SNS類型的web2.0純動態(tài)網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的數據庫則由于其本身的特點得到了非常迅速的發(fā)展。

NoSQL(NoSQL

= Not Only SQL

),意即“不僅僅是SQL”,是一項全新的數據庫革命性運動,早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL的擁護者們提倡運用非關系型的數

據存儲,相對于鋪天蓋地的關系型數據庫運用,這一概念無疑是一種全新的思維的注入。

從這一新興技術中選擇一款正確的NoSQL數據庫是非常具有挑戰(zhàn)性的。比一下網建議在選擇時考慮以下因素:

并發(fā)控制

發(fā)控制指的是當多個用戶同時更新運行時,用于保護數據庫完整性的各種技術。并發(fā)機制不正確可能導致臟讀、幻讀和不可重復讀等此類問題。并發(fā)控制的目的是保

證一個用戶的工作不會對另一個用戶的工作產生不合理的影響。在某些情況下,這些措施保證了當用戶和其他用戶一起操作時,所得的結果和她單獨操作時的結果是

一樣的。在另一些情況下,這表示用戶的工作按預定的方式受其他用戶的影響。

封鎖

就是事務T在對某個數據對象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務T就對該數據對象有了一定的控制,在事務T釋放它的鎖之前,其它的事務不能更新此數據對象。

封鎖是一次只允許一個用戶讀取或修改的一種機制,是實現并發(fā)控制的一個非常重要的技術。

MVCC

Multi-Version Concurrency Control多版本并發(fā)控制,維持一個數據的多個版本使讀寫操作沒有沖突。MVCC優(yōu)化了數據庫并發(fā)系統(tǒng),使系統(tǒng)在有大量并發(fā)用戶時得到最高的性能,并且可以不用關閉服務器就直接進行熱備份。

ACID

數據庫事務正確執(zhí)行的四個基本要素的縮寫。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久

性(Durability)。一個支持事務(Transaction)的數據庫系統(tǒng),必需要具有這四種特性,否則在事務過程(Transaction

processing)當中無法保證數據的正確性,交易過程極可能達不到交易方的要求。

None

一些系統(tǒng)不提供原子性。

鏡像

數據庫鏡像是DBMS根據DBA的要求,自動把整個數據庫或其中的關鍵數據復制到另一個磁盤上,每當主數據庫更新時,DBMS會自動把更新后的數據復制過去,即DBMS自動保證鏡像數據與主數據的一致性。

鏡像分為同步和異步。

數據存儲

指的是數據的物理特性怎樣被存儲在數據庫中。

磁盤 數據被存儲在硬盤驅動器里;

GFS或谷歌文件系統(tǒng)是一個由谷歌開發(fā)的專有的分布式文件系統(tǒng);

Hadoop是Apache軟件框架,免費許可下支持數據密集型分布式應用程序;

RAM隨機存儲器;

插件 可以添加外部插件;

Amazon S3通過Web服務接口提供存儲;

BDB:BDB

全稱是 “Berkeley DB”,它是MySQL具有事務能力的表類型,由Sleepycat

Software開發(fā)。BDB表類型提供了MySQL用戶長久期盼的功能,即事務控制能力。在任何RDBMS中,事務控制能力都是一種極其重要和寶貴的功

能。事務控制能力使得我們能夠確保一組命令確實已經全部執(zhí)行成功,或者確保當任何一個命令出現錯誤時所有命令的執(zhí)行結果均被退回。

實現語言

實現語言會影響數據庫的發(fā)展速度。典型的NoSQL數據庫是用低級語言如C / C + +編寫的。另一方面,那些更高層次的語言如Java,使自定義更容易。

實現語言有:C, C++, Erlang, Java, Python

特性

考慮下列哪一個特點對你的數據庫是最重要的:

持久性

可用性

一致性

分區(qū)容忍性

證書類型

下面這些許可證是一個不同的開放源碼許可的形式:

GPL:通用公共許可證

BSD:伯克利軟件分發(fā)

MPL:Mozilla公共許可證

EPL:Eclipse公共許可證

IDPL:最初的開發(fā)者的公共許可證

LGPL:較寬松通用公共許可證

存儲類型

存儲類型是NoSQL數據庫最大的不同,是決定使用哪款數據庫的一個首要指標。

關鍵字:支持get、put和刪除操作

按列存儲:相對于傳統(tǒng)的按行存儲,數據集成容易多了

面向文件系統(tǒng):存儲像是JSON或XML這樣的結構化文件,很容易就能從面向對象軟件中獲取數據。

NoSQL數據庫是否意味著缺乏安全性?

NoSQL薄弱的安全性會給企業(yè)帶來負面影響 。Imperva公司創(chuàng)始人兼CTO Amichai Shulman如是說。在新的一年中,無疑會有更多企業(yè)開始或籌劃部署NoSQL。方案落實后就會逐漸發(fā)現種種安全問題,因此早做準備才是正確的選擇。 作為傳統(tǒng)關系型數據庫的替代方案,NoSQL在查詢中并不使用SQL語言,而且允許用戶隨時變更數據屬性。此類數據庫以擴展性良好著稱,并能夠在需要大量應用程序與數據庫本身進行實時交互的交易處理任務中發(fā)揮性能優(yōu)勢,Couchbase創(chuàng)始人兼產品部門高級副總裁James Phillips解釋稱:NoSQL以交易業(yè)務為核心。它更注重實時處理能力并且擅長直接對數據進行操作,大幅度促進了交互型軟件系統(tǒng)的發(fā)展。Phillips指出。其中最大的優(yōu)勢之一是能夠隨時改變(在屬性方面),由于結構性的弱化,修改過程非常便捷。 NoSQL最大優(yōu)勢影響其安全性 NoSQL的關鍵性特色之一是其動態(tài)的數據模型,Shulman解釋道。我可以在其運作過程中加入新的屬性記錄。因此與這種結構相匹配的安全模型必須具備一定的前瞻性規(guī)劃。也就是說,它必須能夠了解數據庫引入的新屬性將引發(fā)哪些改變,以及新加入的屬性擁有哪些權限。然而這個層面上的安全概念目前尚不存在,根本沒有這樣的解決方案。 根據Phillips的說法,某些NoSQL開發(fā)商已經開始著手研發(fā)安全機制,至少在嘗試保護數據的完整性。在關系型數據庫領域,如果我們的數據組成不正確,那么它將無法與結構并行運作,換言之數據插入操作整體將宣告失敗。目前各種驗證規(guī)則與完整性檢查已經比較完善,而事實證明這些驗證機制都能在NoSQL中發(fā)揮作用。我們與其他人所推出的解決方案類似,都會在插入一條新記錄或是文檔型規(guī)則時觸發(fā),并在執(zhí)行過程中確保插入數據的正確性。 Shulman預計新用戶很快將在配置方面捅出大婁子,這并非因為IT工作人員的玩忽職守,實際上主要原因是NoSQL作為一項新技術導致大多數人對其缺乏足夠的知識基礎。Application Security研發(fā)部門TeamSHATTER的經理Alex Rothacker對上述觀點表示贊同。他指出,培訓的一大問題在于,大多數NoSQL的從業(yè)者往往屬于新生代IT人士,他們對于技術了解較多,但往往缺乏足夠的安全管理經驗。 如果他們從傳統(tǒng)關系型數據庫入手,那么由于強制性安全機制的完備,他們可以在使用中學習。但NoSQL,只有行家才能通過觀察得出正確結論,并在大量研究工作后找到一套完備的安全解決方案。因此可能有90%的從業(yè)者由于知識儲備、安全經驗或是工作時間的局限而無法做到這一點。 NoSQL需在安全性方面進行優(yōu)化 盡管Phillips認同新技術與舊經驗之間存在差異,但企業(yè)在推廣NoSQL時加大對安全性的關注會起到很大程度的積極作用。他認為此類數據存儲機制與傳統(tǒng)關系類數據庫相比,其中包含著的敏感類信息更少,而且與企業(yè)網絡內部其它應用程序的接觸機會也小得多。 他們并不把這項新技術完全當成數據庫使用,正如我們在收集整理大量來自其它應用程序的業(yè)務類數據時,往往也會考慮將其作為企業(yè)數據存儲機制一樣,他補充道。當然,如果我打算研發(fā)一套具備某種特定功能的社交網絡、社交游戲或是某種特殊web應用程序,也很可能會將其部署于防火墻之下。這樣一來它不僅與應用程序緊密結合,也不會被企業(yè)中的其它部門所觸及。 但Rothacker同時表示,這種過度依賴周邊安全機制的數據庫系統(tǒng)也存在著極其危險的漏洞。一旦系統(tǒng)完全依附于周邊安全模型,那么驗證機制就必須相對薄弱,而且缺乏多用戶管理及數據訪問方面的安全保護。只要擁有高權限賬戶,我們幾乎能訪問存儲機制中的一切數據。舉例來說,Brian Sullivan就在去年的黑帽大會上演示了如何在完全不清楚數據具體內容的情況下,將其信息羅列出來甚至導出。 而根據nCircle公司CTO Tim ‘TK’ Keanini的觀點,即使是與有限的應用程序相關聯(lián),NoSQL也很有可能被暴露在互聯(lián)網上。在缺少嚴密網絡劃分的情況下,它可能成為攻擊者窺探存儲數據的薄弱環(huán)節(jié)。因為NoSQL在設計上主要用于互聯(lián)網規(guī)模的部署,所以它很可能被直接連接到互聯(lián)網中,進而面臨大量攻擊行為。 其中發(fā)生機率最高的攻擊行為就是注入式攻擊,這也是一直以來肆虐于關系類數據庫領域的頭號公敵。盡管NoSQL沒有將SQL作為查詢語言,也并不代表它能夠免受注入式攻擊的威脅。雖然不少人宣稱SQL注入在NoSQL這邊不起作用,但其中的原理是完全一致的。攻擊者需要做的只是改變自己注入內容的語法形式,Rothacker解釋稱。也就是說雖然SQL注入不會出現,但JavaScript注入或者JSON注入同樣能威脅安全。 此外,攻擊者在籌劃對這類數據庫展開侵襲時,也很可能進一步優(yōu)化自己的工具。不成熟的安全技術往往帶來這樣的窘境:需要花費大量時間學習如何保障其安全,但幾乎每個IT人士都能迅速掌握攻擊活動的組織方法。因此我認為攻擊者將會始終走在安全部署的前面,Shulman說道。遺憾的是搞破壞總比防范工作更容易,而我們已經看到不少NoSQL技術方面的公開漏洞,尤其是目前引起熱議的、以JSON注入為載體的攻擊方式。 NoSQL安全性并非其阻礙 然而,這一切都不應該成為企業(yè)使用NoSQL的阻礙,他總結道。我認為歸根結底,這應該算是企業(yè)的一種商業(yè)決策。只要這種選擇能夠帶來吸引力巨大的商業(yè)機遇,就要承擔一定風險,Shulman解釋道。但應該采取一定措施以盡量弱化這種風險。 舉例來說,鑒于數據庫對外部安全機制的依賴性,Rothacker建議企業(yè)積極考慮引入加密方案。他警告稱,企業(yè)必須對與NoSQL相對接的應用程序代碼仔細檢查。換言之,企業(yè)必須嚴格挑選負責此類項目部署的人選,確保將最好的人才用于這方面事務,Shulman表示。當大家以NoSQL為基礎編寫應用程序時,必須啟用有經驗的編程人員,因為客戶端軟件是抵擋安全問題的第一道屏障。切實為額外緩沖區(qū)的部署留出時間與預算,這能夠讓員工有閑暇反思自己的工作內容并盡量多顧及安全考量多想一點就是進步。綜上所述,這可能與部署傳統(tǒng)的關系類數據庫也沒什么不同。 具有諷刺意味的是,近年來數據庫應用程序在安全性方面的提升基本都跟數據庫本身沒什么關系,nCircle公司安全研究及開發(fā)部門總監(jiān)Oliver Lavery如是說。

網頁題目:為什么整nosql,為什么整天頭暈暈的老想睡覺
文章路徑:http://chinadenli.net/article29/dsejoch.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站設計公司App設計動態(tài)網站網站制作網站建設小程序開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網站建設