新聞中心
NoSql數(shù)據(jù)庫可以存儲(chǔ)的最大的一行數(shù)據(jù)能多大
1、使用冗余,每個(gè)人的好友信息都在數(shù)據(jù)庫中有存儲(chǔ),就是你說的記錄一對(duì)一關(guān)系
創(chuàng)新互聯(lián)公司不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對(duì)營銷、技術(shù)、服務(wù)都有自己獨(dú)特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的網(wǎng)站制作、成都做網(wǎng)站質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時(shí),也能得到同行業(yè)的專業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級(jí),滿足企業(yè)一站式網(wǎng)絡(luò)營銷推廣需求,讓再小的成都品牌網(wǎng)站建設(shè)也能產(chǎn)生價(jià)值!
2、數(shù)據(jù)緩存到內(nèi)存,數(shù)據(jù)訪問很快
3、狀態(tài)信息修改異步,比如一個(gè)人登陸了,他的好友不是馬上就知道,中間間隔幾秒也沒有關(guān)系
4、數(shù)據(jù)可能不放在關(guān)系數(shù)據(jù)庫中,可能使用nosql數(shù)據(jù)庫,比如mongodb,bigtable,cassandra等
幾種nosql的淺談
1、性能
都比較高,性能對(duì)我們來說應(yīng)該都不是瓶頸。
總體來講,TPS 方面 redis 和 memcache 差不多,要大于 mongodb。
2、操作的便利性
memcache 數(shù)據(jù)結(jié)構(gòu)單一。(key-value)
redis 豐富一些,數(shù)據(jù)操作方面,redis 更好一些,較少的網(wǎng)絡(luò) IO 次數(shù),同時(shí)還提供 list,set,
hash 等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。
mongodb 支持豐富的數(shù)據(jù)表達(dá),索引,最類似關(guān)系型數(shù)據(jù)庫,支持的查詢語言非常豐富。
3、內(nèi)存空間的大小和數(shù)據(jù)量的大小
redis 在 2.0 版本后增加了自己的 VM 特性,突破物理內(nèi)存的限制;可以對(duì) key value 設(shè)置過
期時(shí)間(類似 memcache)
memcache 可以修改最大可用內(nèi)存,采用 LRU 算法。Memcached 代理軟件 magent,比如建立
10 臺(tái) 4G 的 Memcache 集群,就相當(dāng)于有了 40G。 magent -s 10.1.2.1 -s 10.1.2.2:11211 -b
10.1.2.3:14000 mongoDB 適合大數(shù)據(jù)量的存儲(chǔ),依賴操作系統(tǒng) VM 做內(nèi)存管理,吃內(nèi)存也比較厲害,服務(wù)
不要和別的服務(wù)在一起。
4、可用性(單點(diǎn)問題)
對(duì)于單點(diǎn)問題,
redis,依賴客戶端來實(shí)現(xiàn)分布式讀寫;主從復(fù)制時(shí),每次從節(jié)點(diǎn)重新連接主節(jié)點(diǎn)都要依賴整
個(gè)快照,無增量復(fù)制,因性能和效率問題,
所以單點(diǎn)問題比較復(fù)雜;不支持自動(dòng) sharding,需要依賴程序設(shè)定一致 hash 機(jī)制。
一種替代方案是,不用 redis 本身的復(fù)制機(jī)制,采用自己做主動(dòng)復(fù)制(多份存儲(chǔ)),或者改成
增量復(fù)制的方式(需要自己實(shí)現(xiàn)),一致性問題和性能的權(quán)衡
Memcache 本身沒有數(shù)據(jù)冗余機(jī)制,也沒必要;對(duì)于故障預(yù)防,采用依賴成熟的 hash 或者環(huán)
狀的算法,解決單點(diǎn)故障引起的抖動(dòng)問題。
mongoDB 支持 master-slave,replicaset(內(nèi)部采用 paxos 選舉算法,自動(dòng)故障恢復(fù)),auto sharding 機(jī)制,對(duì)客戶端屏蔽了故障轉(zhuǎn)移和切分機(jī)制。
5、可靠性(持久化)
對(duì)于數(shù)據(jù)持久化和數(shù)據(jù)恢復(fù),
redis 支持(快照、AOF):依賴快照進(jìn)行持久化,aof 增強(qiáng)了可靠性的同時(shí),對(duì)性能有所影
響
memcache 不支持,通常用在做緩存,提升性能;
MongoDB 從 1.8 版本開始采用 binlog 方式支持持久化的可靠性
6、數(shù)據(jù)一致性(事務(wù)支持)
Memcache 在并發(fā)場(chǎng)景下,用 cas 保證一致性redis 事務(wù)支持比較弱,只能保證事務(wù)中的每個(gè)操作連續(xù)執(zhí)行
mongoDB 不支持事務(wù)
7、數(shù)據(jù)分析
mongoDB 內(nèi)置了數(shù)據(jù)分析的功能(mapreduce),其他不支持
8、應(yīng)用場(chǎng)景
redis:數(shù)據(jù)量較小的更性能操作和運(yùn)算上
memcache:用于在動(dòng)態(tài)系統(tǒng)中減少數(shù)據(jù)庫負(fù)載,提升性能;做緩存,提高性能(適合讀多寫
少,對(duì)于數(shù)據(jù)量比較大,可以采用 sharding)
MongoDB:主要解決海量數(shù)據(jù)的訪問效率問題。
表格比較:
memcache redis 類型 內(nèi)存數(shù)據(jù)庫 內(nèi)存數(shù)據(jù)庫
數(shù)據(jù)類型 在定義 value 時(shí)就要固定數(shù)據(jù)類型 不需要
有字符串,鏈表,集 合和有序集合
虛擬內(nèi)存 不支持 支持
過期策略 支持 支持
分布式 magent master-slave,一主一從或一主多從
存儲(chǔ)數(shù)據(jù)安全 不支持 使用 save 存儲(chǔ)到 dump.rdb 中
災(zāi)難恢復(fù) 不支持 append only file(aof)用于數(shù)據(jù)恢復(fù)
性能
1、類型——memcache 和 redis 都是將數(shù)據(jù)存放在內(nèi)存,所以是內(nèi)存數(shù)據(jù)庫。當(dāng)然,memcache 也可用于緩存其他東西,例如圖片等等。
2、 數(shù)據(jù)類型——Memcache 在添加數(shù)據(jù)時(shí)就要指定數(shù)據(jù)的字節(jié)長度,而 redis 不需要。
3、 虛擬內(nèi)存——當(dāng)物理內(nèi)存用完時(shí),可以將一些很久沒用到的 value 交換到磁盤。
4、 過期策略——memcache 在 set 時(shí)就指定,例如 set key1 0 0 8,即永不過期。Redis 可以通
過例如 expire 設(shè)定,例如 expire name 10。
5、 分布式——設(shè)定 memcache 集群,利用 magent 做一主多從;redis 可以做一主多從。都可
以一主一從。
6、 存儲(chǔ)數(shù)據(jù)安全——memcache 斷電就斷了,數(shù)據(jù)沒了;redis 可以定期 save 到磁盤。
7、 災(zāi)難恢復(fù)——memcache 同上,redis 丟了后可以通過 aof 恢復(fù)。
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 啟動(dòng)一個(gè)守護(hù)進(jìn)程
-p 端口
-m 分配的內(nèi)存是 M
-c 最大運(yùn)行并發(fā)數(shù)-P memcache 的 pid
//0 壓縮(是否 MEMCACHE_COMPRESSED) 30 秒失效時(shí)間
//delete 5 是 timeout
SQL 數(shù)據(jù)庫 學(xué)習(xí) 003 什么是數(shù)據(jù)庫? 為什么需要數(shù)據(jù)庫?
1. 什么是數(shù)據(jù)庫 如果我們狹義的理解,它就是一個(gè)存儲(chǔ)數(shù)據(jù)的倉庫。 如果我們廣義的理解,...
2. 為什么需要數(shù)據(jù)庫
3. 幾乎所有的應(yīng)用軟件的后臺(tái)都需要數(shù)據(jù)庫。 比如說:銀行。張三、李四…將錢存入銀行,我們不就需要一個(gè)來存儲(chǔ)這些信息的庫嗎,...
4. 數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)占用的空間小,并且容易持久保存。 比如:同樣的數(shù)據(jù),如果讓你直接...
5. 是不是所有的軟件都是用Sql Server? 大多數(shù)應(yīng)用軟件,都可能會(huì)使用數(shù)據(jù)...
創(chuàng)建數(shù)據(jù)庫的五個(gè)屬性
創(chuàng)建數(shù)據(jù)庫的五個(gè)屬性:比如學(xué)生表存學(xué)號(hào),姓名、年齡、性別、班級(jí)等。
選擇開始菜單中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打開【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份驗(yàn)證建立連接。
在【對(duì)象資源管理器】窗口中展開服務(wù)器,然后選擇【數(shù)據(jù)庫】節(jié)點(diǎn),右鍵單擊【數(shù)據(jù)庫】節(jié)點(diǎn),從彈出來的快捷菜單中選擇【新建數(shù)據(jù)庫】命令。
非關(guān)系型數(shù)據(jù)庫:
隨著近些年技術(shù)方向的不斷拓展,大量的NoSql數(shù)據(jù)庫如MongoDB、Redis、Memcache出于簡(jiǎn)化數(shù)據(jù)庫結(jié)構(gòu)、避免冗余、影響性能的表連接、摒棄復(fù)雜分布式的目的被設(shè)計(jì)。
指的是分布式的、非關(guān)系型的、不保證遵循ACID原則的數(shù)據(jù)存儲(chǔ)系統(tǒng)。NoSQL數(shù)據(jù)庫技術(shù)與CAP理論、一致性哈希算法有密切關(guān)系。所謂CAP理論,簡(jiǎn)單來說就是一個(gè)分布式系統(tǒng)不可能滿足可用性、一致性與分區(qū)容錯(cuò)性這三個(gè)要求。
以上內(nèi)容參考:百度百科-數(shù)據(jù)庫
數(shù)據(jù)庫有哪幾種?
數(shù)據(jù)庫有兩種類型,分別是關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫。
1、關(guān)系數(shù)據(jù)庫
包括:MySQL、MariaDB(MySQL的代替品,英文維基百科從MySQL轉(zhuǎn)向MariaDB)、Percona Server(MySQL的代替品)、PostgreSQL、Microsoft Access、Microsoft SQL Server、Google Fusion Tables。
FileMaker、Oracle數(shù)據(jù)庫、Sybase、dBASE、Clipper、FoxPro、foshub。幾乎所有的數(shù)據(jù)庫管理系統(tǒng)都配備了一個(gè)開放式數(shù)據(jù)庫連接(ODBC)驅(qū)動(dòng)程序,令各個(gè)數(shù)據(jù)庫之間得以互相集成。
2、非關(guān)系型數(shù)據(jù)庫(NoSQL)
包括:BigTable(Google)、Cassandra、MongoDB、CouchDB、鍵值(key-value)數(shù)據(jù)庫、Apache Cassandra(為Facebook所使用):高度可擴(kuò)展、Dynamo、LevelDB(Google)。
擴(kuò)展資料:
數(shù)據(jù)庫的作用
數(shù)據(jù)庫管理系統(tǒng)是為管理數(shù)據(jù)庫而設(shè)計(jì)的電腦軟件系統(tǒng),一般具有存儲(chǔ)、截取、安全保障、備份等基礎(chǔ)功能。
數(shù)據(jù)庫管理系統(tǒng)可以依據(jù)它所支持的數(shù)據(jù)庫模型來作分類,例如關(guān)系式、XML;或依據(jù)所支持的計(jì)算機(jī)類型來作分類,例如服務(wù)器群集、移動(dòng)電話。
或依據(jù)所用查詢語言來作分類,例如SQL、XQuery;或依據(jù)性能沖量重點(diǎn)來作分類,例如最大規(guī)模、最高運(yùn)行速度;亦或其他的分類方式。不論使用哪種分類方式,一些DBMS能夠跨類別,例如,同時(shí)支持多種查詢語言。
參考資料來源:百度百科--數(shù)據(jù)庫
NewSQL為何使傳統(tǒng)關(guān)系數(shù)據(jù)庫黯然失色?
傳統(tǒng)數(shù)據(jù)庫仍舊會(huì)有一席之地,至于NewSQL的優(yōu)勢(shì)又是什么,簡(jiǎn)單和大家說說:
首先關(guān)于“中間件+關(guān)系數(shù)據(jù)庫分庫分表”算不算NewSQL分布式數(shù)據(jù)庫問題,國外有篇論文pavlo-newsql-sigmodrec,如果根據(jù)該文中的分類,Spanner、TiDB、OB算是第一種新架構(gòu)型,Sharding-Sphere、Mycat、DRDS等中間件方案算是第二種(文中還有第三種云數(shù)據(jù)庫,本文暫不詳細(xì)介紹)。
基于中間件(包括SDK和Proxy兩種形式)+傳統(tǒng)關(guān)系數(shù)據(jù)庫(分庫分表)模式是不是分布式架構(gòu)?我覺得是的,因?yàn)榇鎯?chǔ)確實(shí)也分布式了,也能實(shí)現(xiàn)橫向擴(kuò)展。但是不是“偽”分布式數(shù)據(jù)庫?從架構(gòu)先進(jìn)性來看,這么說也有一定道理。
“偽”主要體現(xiàn)在中間件層與底層DB重復(fù)的SQL解析與執(zhí)行計(jì)劃生成、存儲(chǔ)引擎基于B+Tree等,這在分布式數(shù)據(jù)庫架構(gòu)中實(shí)際上冗余低效的。為了避免引起真?zhèn)畏植际綌?shù)據(jù)庫的口水戰(zhàn),本文中NewSQL數(shù)據(jù)庫特指這種新架構(gòu)NewSQL數(shù)據(jù)庫。
NewSQL數(shù)據(jù)庫相比中間件+分庫分表的先進(jìn)在哪兒?畫一個(gè)簡(jiǎn)單的架構(gòu)對(duì)比圖:
傳統(tǒng)數(shù)據(jù)庫面向磁盤設(shè)計(jì),基于內(nèi)存的存儲(chǔ)管理及并發(fā)控制,不如NewSQL數(shù)據(jù)庫那般高效利用;
中間件模式SQL解析、執(zhí)行計(jì)劃優(yōu)化等在中間件與數(shù)據(jù)庫中重復(fù)工作,效率相比較低;
NewSQL數(shù)據(jù)庫的分布式事務(wù)相比于XA進(jìn)行了優(yōu)化,性能更高;
新架構(gòu)NewSQL數(shù)據(jù)庫存儲(chǔ)設(shè)計(jì)即為基于paxos(或Raft)協(xié)議的多副本,相比于傳統(tǒng)數(shù)據(jù)庫主從模式(半同步轉(zhuǎn)異步后也存在丟數(shù)問題),在實(shí)現(xiàn)了真正的高可用、高可靠(RTO30s,RPO=0);
NewSQL數(shù)據(jù)庫天生支持?jǐn)?shù)據(jù)分片,數(shù)據(jù)的遷移、擴(kuò)容都是自動(dòng)化的,大大減輕了DBA的工作,同時(shí)對(duì)應(yīng)用透明,無需在SQL指定分庫分表鍵。
文章標(biāo)題:nosql數(shù)據(jù)庫有冗余,nosql內(nèi)存數(shù)據(jù)庫
本文網(wǎng)址:http://www.dlmjj.cn/article/dsdgoje.html