關系型數據庫與非關系型數據庫概述


一、關系型數據庫與非關系型數據庫概述
1、關系型數據庫
(1)關系型數據庫是一個結構化的數據庫,創建在關系模型(二維表格模型)基礎上,一般面向於記錄。
(2)SQL 語句(標准數據查詢語言)就是一種基於關系型數據庫的語言,用於執行對關系型數據庫中數據的檢索和操作。
注:主流的關系型數據庫包括 Oracle、MySQL、SQL Server、Microsoft Access、DB2 等。

2、非關系型數據庫
(1)NoSQL(NoSQL = Not Only SQL ),意思是“不僅僅是 SQL”,是非關系型數據庫的總稱。
(2)除了主流的關系型數據庫外的數據庫,都認為是非關系型。
注:主流的 NoSQL 數據庫有 Redis、MongBD、Hbase、CouhDB 等。

二、關系數據庫與非關系型數據庫區別
1、數據儲存方式不同
關系型和非關系型數據庫的主要差異是數據存儲的方式。關系型數據天然就是表格式的,因此存儲在數據表的行和列中。數據表可以彼此關聯協作存儲,也很容易提取數據。
與其相反,非關系型數據不適合存儲在數據表的行和列中,而是大塊組合在一起。非關系型數據通常存儲在數據集中,就像文檔、鍵值對或者圖結構。你的數據及其特性是選擇數據存儲和提取方式的首要影響因素。

2、擴展方式不同
SQL和NoSQL數據庫最大的差別可能是在擴展方式上,要支持日益增長的需求當然要擴展。
要支持更多並發量,SQL數據庫是縱向擴展,也就是說提高處理能力,使用速度更快速的計算機,這樣處理相同的數據集就更快了。因為數據存儲在關系表中,操作的性能瓶頸可能涉及很多個表,這都需要通過提高計算機性能來客服。雖然SQL數據庫有很大擴展空間,但最終肯定會達到縱向擴展的上限。
而NoSQL數據庫是橫向擴展的。因為非關系型數據存儲天然就是分布式的,NoSQL數據庫的擴展可以通過給資源池添加更多普通的數據庫服務器(節點)來分擔負載。

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

三、非關系型數據庫
可用於應對 Web2.0 純動態網站類型的三高問題。
(1)High performance——對數據庫高並發讀寫需求
(2)Huge Storage——對海量數據高效存儲與訪問需求
(3)High Scalability && High Availability——對數據庫高可擴展性與高可用性需求
關系型數據庫和非關系型數據庫都有各自的特點與應用場景,兩者的緊密結合將會給Web2.0的數據庫發展帶來新的思路。讓關系數據庫關注在關系上,非關系型數據庫關注在存儲上。例如,在讀寫分離的MySQL數據庫環境中,可以把經常訪問的數據存儲在非關系型數據庫中,提升訪問速度。
總結:
關系型數據庫:
實例–>數據庫–>表(table)–>記錄行(row)、數據字段(column)
非關系型數據庫:
實例–>數據庫–>集合(collection)–>鍵值對(key-value)
非關系型數據庫不需要手動建數據庫和集合( www.jinmazx.cn 表)。

四、Redis簡介
Redis 是一個開源的、使用 C 語言編寫的 NoSQL 數據庫。
Redis 基於內存運行並支持持久化,采用key-value(鍵值對)的存儲形式,是目前分布式架構中不可或缺的一環。
Redis服務器程序是單進程模型,也就是在一台服務器上可以同時啟動多個Redis進程,Redis的實際處理速度則是完全依靠於主進程的執行效率。若在服務器上只運行一個Redis進程,當多個客戶端同時訪問時,服務器的處理能力是會有一定程度的下降;若在同一台服務器上開啟多個Redis進程,Redis在提高並發處理能力的同時會給服務器的CPU造成很大壓力。即:在實際生產環境中,需要根據實際的需求來決定開啟多少個Redis進程。若對高並發要求更高一些,可能會考慮在同一台服務器上開啟多個進程。若 CPU 資源比較緊張,采用單進程即可。

1、Redis 優點
(1)具有極高的數據讀寫速度:數據讀取的速度最高可達到 110000 次/s,數據寫入速度最高可達到 81000 次/s。
(2)支持豐富的數據類型:支持 key-value、www.yunzeyle.cn Strings、Lists、Hashes、Sets 及 Ordered Sets 等數據類型操作。
(3)支持數據的持久化:可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。
(4)原子性:Redis 所有操作都是原子性的。
(5)支持數據備份:即 master-salve 模式的數據備份。
Redis作為基於內存運行的數據庫,緩存是其最常應用的場景之一。除此之外,Redis常見應用場景還包括獲取最新N個數據的操作、排行榜類應用、計數器應用、存儲關系、實時分析系統、日志記錄。

五、Redis 安裝部署
systemctl stop firewalld
setenforce 0

yum install -y gcc gcc-c++ make

tar zxvf redis-5.0.7.tar.gz -www.baihua178.cn C /opt/

cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis install

 


cd /opt/redis-5.0.7/utils
./install_server.sh
……
慢慢回車
Please select the redis executable path []
手動輸入
/usr/local/redis/bin/redis-server


Selected config:
Port : 6379 #默認偵聽端口為6379
Config file : /etc/redis/6379.conf #配置文件路徑
Log file : /var/log/redis_6379.log #日志文件路徑
Data dir : /var/lib/redis/6379 #數據文件路徑
Executable : /usr/local/redis/bin/redis-server #可執行文件路徑
Cli Executable : /usr/local/bin/redis-cli #客戶端命令工具

ln -s /usr/local/redis/bin/* /usr/local/bin/

/etc/init.d/redis_6379 stop #停止
/etc/init.d/redis_6379 start #啟動
/etc/init.d/redis_6379 restart #重啟
/etc/init.d/redis_6379 status #狀態
————————————

版權聲明:本文為CSDN博主「17_yyang」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/tefuiryy/article/details/114118436


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM