簡介

第一章:簡介
(一)Redis介紹
Redis(全稱:Remote Dictionary Server 遠程字典服務)是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API.從2010年3月15日起,Redis的開發工作由VMware主持.從2013年5月開始,Redis的開發由Pivotal贊助

(二)關係型數據庫和非關係型數據庫區別
1、數據存儲方式不同
關係型和非關係型數據庫的主要差異是數據存儲的方式.關係型數據天然就是表格式的,因此存儲在數據表的行和列中.數據表可以彼此關聯協作存儲,也很容易提取數據.

與其相反,非關係型數據不適合存儲在數據表的行和列中,而是大塊組合在一起.非關係型數據通常存儲在數據集中,就像文檔、鍵值對或者圖結構.你的數據及其特性是選擇數據存儲和提取方式的首要影響因素.
2、擴展方式不同

SQL和NoSQL數據庫最大的差別可能是在擴展方式上,要支持日益增長的需求當然要擴展.

要支持更多併發量,SQL數據庫是縱向擴展,也就是說提高處理能力,使用速度更快速的計算機,這樣處理相同的數據集就更快了.

因爲數據存儲在關係表中,操作的性能瓶頸可能涉及很多個表,這都需要通過提高計算機性能來客服.雖然SQL數據庫有很大擴展空間,但最終肯定會達到縱向擴展的上限.而NoSQL數據庫是橫向擴展的.

而非關係型數據存儲天然就是分佈式的,NoSQL數據庫的擴展可以通過給資源池添加更多普通的數據庫服務器(節點)來分擔負載.

3、對事務性的支持不同

如果數據操作需要高事務性或者複雜數據查詢需要控制執行計劃,那麼傳統的SQL數據庫從性能和穩定性方面考慮是你的最佳選擇.SQL數據庫支持對事務原子性細粒度控制,並且易於回滾事務.
雖然NoSQL數據庫也可以使用事務操作,但穩定性方面沒法和關係型數據庫比較,所以它們真正閃亮的價值是在操作的擴展性和大數據量處理方面.

(三)爲什麼需要把數據存入內存

1:應用服務器和數據庫服務器的網絡傳輸會成爲性能瓶頸
2:針對上述問題存在解決方案:連接池、頁面的靜態化shtml、內存存儲
3:Redis存儲針對於系統崩潰有倆種持久化方式:RDB和AOF
(四)NoSQL數據庫的四大分類的分析

在這裏插入圖片描述

(五)適用場景

NoSQL數據庫在以下的這幾種情況下比較適用:
1、數據模型比較簡單;
2、需要靈活性更強的IT系統;
3、對數據庫性能要求較高;
4、不需要高度的數據一致性;
5、對於給定key,比較容易映射覆雜值的環境.

(六)Redis優勢
性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s .
豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作.
原子 – Redis的所有操作都是原子性的,意思就是要麼成功執行要麼失敗完全不執行.單個操作是原子性的.多個操作也支持事務,即原子性,通過MULTI和EXEC指令包起來.
豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性.

(七)缺點
1、由於 Redis 是內存數據庫,所以,單臺機器,存儲的數據量,跟機器本身的內存大小.雖然 Redis 本身有 Key 過期策略,但是還是需要提前預估和節約內存.如果內存增長過快,需要定期刪除數據.
2、redis是單線程的,單臺服務器無法充分利用多核服務器的CPU
(八)Redis和MemCache的區別
1:MemCache不支持持久化,Redis支持RDB和AOF的持久化
2:MemCache沒有豐富的數據類型

發佈了64 篇原創文章 · 獲贊 9 · 訪問量 5012
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章