Nosql之Redis配置與優化
阿新 • • 發佈:2022-12-09
目錄:
1、關係型資料庫與非關係型
關係型資料庫
非關係型資料庫
關係型與非關係型資料庫區別
2、Redis
概述
特性
優點
Redis安裝部署
Redis命令工具
Redis資料庫常用命令
Redis高可用
Redis持久化
RDB持久化
AOF持久化
小結
Redis效能管理
記憶體碎片率
記憶體使用率
回收key
關係型資料庫:
關係型資料庫是一個結構化的資料庫,建立在關係模型(二維表格模型)基礎上,一般面向於記錄。
SQL 語句(標準資料查詢語言)就是一種基於關係型資料庫的語言,用於執行對關係型資料庫中資料的檢索和操作。
主流的關係型資料庫包括 Oracle、MySQL、SQL Server、Microsoft Access、DB2、PostgreSQL 等。
以上資料庫在使用的時候必須先建庫建表設計表結構,然後儲存資料的時候按表結構去存,如果資料與表結構不匹配就會儲存失敗。
關係型資料庫和非關係型資料庫區別
(1)、資料儲存方式不同
關係型和非關係型資料庫的主要差異是資料儲存的方式。關係型資料天然就是表格式的,因此儲存在資料表的行和列中。資料表可以彼此關聯協作儲存,也很容易提取資料。
與其相反,非關係型資料不適合儲存在資料表的行和列中,而是大塊組合在一起。非關係型資料通常儲存在資料集中,就像文件、鍵值對或者圖結構。你的資料及其特性是選擇資料儲存和提取方式的首要影響因素。
① 關係型:依賴於關係模型E-R圖,同時以表格式的方式儲存資料
② 非關係型:除了以表格形式儲存之外,通常會以大塊的形式組合在一起進行儲存資料
(2)、擴充套件方式不同
SQL和NoSQL資料庫最大的差別可能是在擴充套件方式上,要支援日益增長的需求當然要擴充套件。
要支援更多併發量,SQL資料庫是縱向擴充套件,也就是說提高處理能力,使用速度更快速的計算機,這樣處理相同的資料集就更快了。因為資料儲存在關係表中,操作的效能瓶頸可能涉及很多個表,這都需要通過提高計算機效能來克服。雖然SQL資料庫有很大擴充套件空間,但最終肯定會達到縱向擴充套件的上限。
而NoSQL資料庫是橫向擴充套件的。因為非關係型資料儲存天然就是分散式的,NoSQL資料庫的擴充套件可以通過給資源池新增更多普通的資料庫伺服器 (節點) 來分擔負載。
① 關係:縱向(天然表格式)
② 非關:橫向(天然分散式)
(3)、對事務性的支援不同
如果資料操作需要高事務性或者複雜資料查詢需要控制執行計劃,那麼傳統的SQL資料庫從效能和穩定性方面考慮是最佳選擇。SQL資料庫支援對事務原子性細粒度控制,並且易於回滾事務。
雖然NoSQL資料庫也可以使用事務操作,但穩定性方面沒法和關係型資料庫比較,所以它們真正閃亮的價值是在操作的擴充套件性和大資料量處理方面。
① 關係型:特別適合高事務性要求和需要控制執行計劃的任務
② 非關係:此處會稍顯弱勢,其價值點在於高擴充套件性和大資料量處理方面
關係型資料庫:例項–>資料庫–>表(table)–>記錄行(row)、資料欄位(column)——》儲存資料
非關係型資料庫:例項–>資料庫–>集合(collection) -->鍵值對(key-value) workdir=/usr/local/mysql
非關係資料庫
1、資料儲存在快取中,利於讀取速度/查詢資料
2、架構中位置靈活
3、分散式、擴充套件性高
關係資料庫
1、安全性高(持久化)
2、事務處理能力強
3、任務控制能力強
4、可以做日誌備份、恢復、容災的能力更強一點。
Redis