Redis

貌似无盐 2024-06-10 10:24 13次浏览 0 条评论 taohigo.com

關系型數據庫與非關系型數據庫特點

一、關系型數據庫

關系型數據庫最典型的數據結構是表,由二維表及其之間的聯系所組成的一個數據組織

優點:

1、易於維護:都是使用表結構,格式一致;

2、使用方便:SQL語言通用,可用於復雜查詢;

3、復雜操作:支持SQL,可用於一個表以及多個表之間非常復雜的查詢。

缺點:

1、讀寫性能比較差,尤其是海量數據的高效率讀寫;

2、固定的表結構,靈活度稍欠;

3、高並發讀寫需求,傳統關系型數據庫來說,硬盤I/O是一個很大的瓶頸。

二、非關系型數據庫

非關系型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合,可以是文檔或者鍵值對等。

優點:

1、格式靈活:存儲數據的格式可以是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,使用靈活,應用場景廣泛,而關系型數據庫則隻支持基礎類型。

2、速度快:nosql可以使用硬盤或者隨機存儲器作為載體,而關系型數據庫隻能使用硬盤;

3、高擴展性;

4、成本低:nosql數據庫部署簡單,基本都是開源軟件。

1 、方便擴展(數據之間沒有關系,很好擴展!)

2 、大數據量高性能( Redis 一秒寫 8 萬次,讀取 11 萬, NoSQL 的緩存記錄級,是一種細粒度的緩存,性 能會比較高!)

3 、數據類型是多樣型的!(不需要事先設計數據庫!隨取隨用!如果是數據量十分大的表,很多人就無法設計瞭!)

缺點:

1、不提供sql支持,學習和使用成本較高;

2、無事務處理;

3、數據結構相對復雜,復雜查詢方面稍欠。

1、數據存儲方式不同。

關系型和非關系型數據庫的主要差異是數據存儲的方式。關系型數據天然就是表格式的,因此存儲在數據表的行和列中。數據表可以彼此關聯協作存儲,也很容易提取數據。

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

2、擴展方式不同。

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

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

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

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

3、對事務性的支持不同。

如果數據操作需要高事務性或者復雜數據查詢需要控制執行計劃,那麼傳統的SQL數據庫從性能和穩定性方面考慮是你的最佳選擇。SQL數據庫支持對事務原子性細粒度控制,並且易於回滾事務。

雖然NoSQL數據庫也可以使用事務操作,但穩定性方面沒法和關系型數據庫比較,所以它們真正閃亮的價值是在操作的擴展性和大數據量處理方面。

Linux環境安裝

一.安裝redis步驟

1. 安裝gcc依賴

由於 redis 是用 C 語言開發,安裝之前必先確認是否安裝 gcc 環境(gcc -v),如果沒有安裝,執行以下命令進行安裝

-y接下來所有選擇性操作默認都是yes

查詢gcc相關的依賴包:yum search "gcc"

[root@localhost local]# yum install -y gcc

如果gcc不能安裝,沒有相關的包則執行如下操作

wget http://vault.centos.org/6.5/os/x86_64/Packages/ppl-0.10.2-11.el6.x86_64.rpm
wget http://vault.centos.org/6.5/os/x86_64/Packages/cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
wget http://vault.centos.org/6.5/os/x86_64/Packages/mpfr-2.4.1-6.el6.x86_64.rpm
wget http://vault.centos.org/6.5/os/x86_64/Packages/cpp-4.4.7-4.el6.x86_64.rpm
wget http://vault.centos.org/6.5/os/x86_64/Packages/kernel-headers-2.6.32-431.el6.x86_64.rpm
wget http://vault.centos.org/6.5/os/x86_64/Packages/glibc-headers-2.12-1.132.el6.x86_64.rpm
wget http://vault.centos.org/6.5/os/x86_64/Packages/glibc-devel-2.12-1.132.el6.x86_64.rpm
wget http://vault.centos.org/6.5/os/x86_64/Packages/gcc-4.4.7-4.el6.x86_64.rpm
wget http://vault.centos.org/6.5/os/x86_64/Packages/libstdc++-devel-4.4.7-4.el6.x86_64.rpm
wget http://vault.centos.org/6.5/os/x86_64/Packages/gcc-c++-4.4.7-4.el6.x86_64.rpm