概要: 深入探討NoSQL數據庫的核心特性,對比傳統關系型數據庫的差異,重點介紹Redis作為內存數據庫的優勢與應用場景。
文章目錄
- 認識 NoSQL
- NoSQL vs SQL 對比
- 1?? 結構化 vs 非結構化
- 2?? 關聯 vs 非關聯
- 3?? 查詢方式對比
- 4?? 事務特性
- 5?? 存儲方式
- 6?? 擴展性
- 認識 Redis
- Redis簡介
- 核心特征
- Redis優勢
- 作者信息
- Redis安裝指南
- 🎉 總結
認識 NoSQL
NoSQL(Not Only SQL): 不僅僅是SQL,是相較于傳統關系型數據庫而言,具有顯著差異性的特殊數據庫類型,因此也稱為非關系型數據庫
NoSQL vs SQL 對比
NoSQL相較于非關系型數據庫,有著六個本質的區別
1?? 結構化 vs 非結構化
特性 | 關系型數據庫 | NoSQL數據庫 |
---|---|---|
數據結構 | 結構化數據 | 非結構化數據 |
約束 | 嚴格的字段約束 | 靈活的格式支持 |
修改成本 | 高(鎖表、業務影響) | 低(靈活調整) |
關系型數據庫特點:
- 創建表時有嚴格的約束信息
- 字段名、數據類型必須預先定義
- 后期修改字段成本極高
NoSQL數據庫特點:
- 支持鍵值型、文檔型、列類型、圖格式
- 格式靈活,適應業務變化
2?? 關聯 vs 非關聯
關系型數據庫: 表與表間存在外鍵關聯
NoSQL數據庫: 無關聯,通過業務邏輯維護
{"id": 1,"name": "張三","orders": [{"id": 1,"item": {"id": 10,"title": "榮耀6","price": 4999}},{"id": 2,"item": {"id": 20,"title": "小米11","price": 3999}}]
}
3?? 查詢方式對比
關系型數據庫: 基于SQL語句
SELECT id, age FROM tb_user WHERE id = 1
NoSQL數據庫: 多種查詢語法
# Redis
get user:1# MongoDB
db.user.find({_id: 1})# Elasticsearch
GET http://localhost:9200/users/1
4?? 事務特性
關系型數據庫: 滿足ACID原則
- Atomicity(原子性):事務要么全部成功,要么全部回滾
- Consistency(一致性):事務前后數據庫狀態一致
- Isolation(隔離性):并發事務相互隔離
- Durability(持久性):事務提交后永久保存
NoSQL數據庫: 實現BASE原則
- Basically Available(基本可用)
- Soft state(軟狀態)
- Eventually consistent(最終一致性)
5?? 存儲方式
特性 | 關系型數據庫 | NoSQL數據庫 |
---|---|---|
存儲介質 | 磁盤存儲 | 內存存儲 |
IO操作 | 大量磁盤IO | 內存讀寫 |
性能 | 受磁盤限制 | 內存速度 |
6?? 擴展性
關系型數據庫: 垂直擴展(主從模式)
- 主從數據一致,用于數據備份
- 受機器性能限制
NoSQL數據庫: 水平擴展
- 通過哈希計算分散存儲
- 解決內存大小限制問題
對比總結
特性 | SQL | NoSQL |
---|---|---|
數據結構 | 結構化 | 非結構化 |
數據關聯 | 關聯的 | 無關聯的 |
查詢方式 | SQL查詢 | 非SQL |
事務特性 | ACID | BASE |
存儲方式 | 磁盤 | 內存 |
擴展性 | 垂直 | 水平 |
使用場景 | 1. 數據結構固定 2. 對一致性、安全性要求高 | 1. 數據結構不固定 2. 對性能要求高 3. 需要高并發 |
認識 Redis
Redis簡介
Redis 誕生于2009年,全稱是 Remote Dictionary Server(遠程詞典服務器),是一個基于內存的鍵值型NoSQL數據庫。
核心特征
特征 | 說明 |
---|---|
鍵值型 | Value支持多種數據結構,功能豐富 |
單線程 | 每個命令具有原子性 |
低延遲 | 基于內存、IO多路復用、良好編碼 |
持久化 | 支持數據持久化 |
集群 | 支持主從集群、分片集群 |
多語言 | 支持多種編程語言客戶端 |
Redis優勢
- 1?? 極高性能:基于內存操作,響應速度極快
- 2?? 原子性:單線程模型保證操作原子性
- 3?? 豐富數據類型:String、Hash、List、Set、ZSet等
- 4?? 持久化:RDB和AOF兩種持久化方式
- 5?? 分布式:支持主從復制和集群模式
- 6?? 易用性:簡單易用的API接口
作者信息
- 作者:Antirez
- 官網:官網地址
Redis安裝指南
Redis超詳細安裝教程
🎉 總結
通過本文的學習,您已經掌握了:
- ? NoSQL數據庫的核心概念和特性
- ? 關系型數據庫與NoSQL的全面對比
- ? Redis作為內存數據庫的優勢和應用
- ? 不同場景下的數據庫選擇策略
下一步: 學習Redis中的相關數據結構與基本指令
💡 提示:選擇合適的數據庫是系統架構設計的關鍵一步,理解各種數據庫的優缺點有助于做出最佳決策。
本文為Redis學習筆記,持續更新中…
如果我的內容對你有幫助,希望可以收獲你的點贊、評論、收藏。