一、NOSQL介紹
目前創(chuàng)新互聯(lián)已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、吉林網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
非關(guān)系型數(shù)據(jù)庫(而MySQL、oracle、sqlserver都是關(guān)系型數(shù)據(jù)庫)
1. 特點
數(shù)據(jù)之間無關(guān)系,隨意擴展
數(shù)據(jù)存儲簡單,可以存在內(nèi)存中,讀寫速度快
不需要建表、字段。自定義格式
2. 分類
A. 鍵值(Key-Value)數(shù)據(jù)庫:redis、memcached、riak
redis/memcached 適合存儲用戶信息,比如會話、配置文件、參數(shù)、購物車等,這些信息一般和ID(鍵)掛鉤
B. 面向文檔(Document-Oriented)數(shù)據(jù)庫:MongoDB、CouchDB、RavenDB
MongoDB將數(shù)據(jù)以文檔形式存儲,每個文檔都是一系列數(shù)據(jù)項的集合,每個數(shù)據(jù)項都有一個名稱與對應(yīng)的值,值既可以是簡單的數(shù)據(jù)類型,如文字、字符串、數(shù)字和日期等,也可以是復(fù)雜的類型,如有序列表和關(guān)聯(lián)對象。數(shù)據(jù)存儲的最小單位是文檔,同一個表中存儲的文檔屬性可以是不同的,數(shù)據(jù)可以使用XML、JSON或JSONB等多種形式
C. 列存儲(Wide Column Store/Column-Family)數(shù)據(jù)庫:Cassandra、HBase
D. 圖(Graph-Oriented)數(shù)據(jù)庫:Neo4J、Infinite Graph、OrientDB
二、Memcached介紹
國外Live Journal團隊開發(fā),通過緩存數(shù)據(jù)庫查詢結(jié)果,減少數(shù)據(jù)庫的訪問次數(shù)(寫入減少不了),從而提高動態(tài)Web站點性能。數(shù)據(jù)存在內(nèi)存中,重啟服務(wù)器即數(shù)據(jù)消失
1. 特點
基于c/s架構(gòu),協(xié)議簡單
基于libevent的事件處理
自主內(nèi)存存儲處理(slab allocation)
數(shù)據(jù)過期方式:Lazv Expiration和LRU
2. Memcationed流程圖
3.Slab allocation原理
將分配的內(nèi)存分割成各種尺寸的塊(chunk),把尺寸相同的分成組,即chunk的集合,每個集合稱為slab
Memcached的內(nèi)存分配以Page為單位,Page默認值為1M,可以在啟動時通過參數(shù)-l來指定
Slab由多個Page組成
一個Chunk最大不能超過1M,即一個Page
一個Slab可能有多個Page
原理圖:
4. Growth factor
Memcached在啟動時可以通過-f參數(shù)可以指定Growth Factor因子(即Chunk之間的的增長比例),默認為1.25,通過memcached-tool 可以查看指定的memcached實際的不同slab狀態(tài)
命令:memcached-tool 127.0.0.1:11211 display
5. Memcached數(shù)據(jù)過期方式
Lazy Expiration:memcached內(nèi)部不會監(jiān)視是否過期,而是get時查看記錄的時間戳,檢查記錄是否過期。這種技術(shù)稱為lazy expiration。優(yōu)點:memcached不會在過期監(jiān)視上耗費CPU時間
LRU:memcached優(yōu)先使用已超時的記錄空間,會發(fā)生追加新記錄空間不足的情況。從最近未被使用的記錄中搜索,并將其空間分配給新的記錄(即刪除最近使用最少的記錄的機制)。從緩存的使用角度看,該模型很理想
三、Redis介紹
屬于key-value存儲系統(tǒng),和memcached相似,但是支持數(shù)據(jù)持久化(重啟服務(wù)器,數(shù)據(jù)還是存在)
A. value類型:
string、hash、lists(鏈表)、sets(集合)、sorted sets(有序集合)
B. 文件格式:
RDB(全量數(shù)據(jù))把內(nèi)存中的數(shù)據(jù)寫入磁盤,下次讀取文件時,進行加載
aof(增量請求)內(nèi)存中的數(shù)據(jù)有序化為操作請求,用于讀取文件進行replay得到數(shù)據(jù),相當(dāng)于mysql的二進制日志
C. 存儲方式:
內(nèi)存存儲、磁盤存儲、log文件
四、MongoDB介紹
由C++語言編寫,是一套基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng),屬于NoSQL
高負載的情況下,可以添加更多的節(jié)點,保證服務(wù)器性能
旨在為Web應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案
數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值對(key=>value)組成,文檔類型于JSON對象。字段值可以包含其它文檔,數(shù)組及文檔數(shù)組
和關(guān)系型數(shù)據(jù)庫對比:
SQL | 說明 | MongoDB | 說明 |
database | 數(shù)據(jù)庫 | database | 數(shù)據(jù)庫 |
table | 表 | collection | 集合 |
row | 記錄行 | document | 文檔 |
column | 字段 | field | 域 |
index | 索引 | index | 索引 |
table joins | 表連接 | ||
primary key | 主鍵 | primary | 自動將_id字段設(shè)置為主鍵 |
當(dāng)前名稱:NoSQL與Memcached、Redis、MongoDB概述
網(wǎng)頁URL:http://aaarwkj.com/article24/pjdpje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站排名、網(wǎng)站維護、微信公眾號、微信小程序、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)