關係型數據庫和非關係數據庫簡單介紹+redis理論概念+redis安裝

本章博客講解關係型數據庫和非關係數據庫簡單介紹+Redis的相關理論概念和安裝。

關係型數據庫:

SqlServer,MySql,Oracle,SQLite,MariaDB,PostgreSQL....
關係型數據庫最典型的數據結構是表,由二維表及其之間的聯繫所組成的一個數據組織
優點:
1、易於維護:都是使用表結構,格式一致;
2、使用方便:SQL語言通用,可用於複雜查詢;
3、複雜操作:支持SQL,可用於一個表以及多個表之間非常複雜的查詢。
缺點:
1、讀寫性能比較差,尤其是海量數據的高效率讀寫;
2、固定的表結構,靈活度稍欠;
3、高併發讀寫需求,傳統關係型數據庫來說,硬盤I/O是一個很大的瓶頸。

非關係型數據庫:

mongoDB,redis,CouchDB,HBASE......
非關係型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合,可以是文檔或者鍵值對等。
優點:
1、格式靈活:存儲數據的格式可以是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,使用靈活,應用場景廣泛,而關係型數據庫則只支持基礎類型。
2、速度快:nosql可以使用硬盤或者隨機存儲器作爲載體,而關係型數據庫只能使用硬盤;
3、高擴展性;
4、成本低:nosql數據庫部署簡單,基本都是開源軟件。
缺點:
1、不提供sql支持,學習和使用成本較高;
2、無事務處理;
3、數據結構相對複雜,複雜查詢方面稍欠。

非關係型數據庫的分類和比較:

1、文檔型
2、key-value型
3、列式數據庫
4、圖形數據庫

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

redis理論概念:

Redis 本質是一個基於內存的高性能key-value非關係型數據庫。 

特點:

Redis本質上是一個Key-Value類型的內存數據庫,很像memcached,整個數據庫統統加載在內存當中進行操作,定期通過異步操作把數據庫數據flush到硬盤上進行保存。因爲是純內存操作,Redis的性能非常出色,每秒可以處理超過 10萬次讀寫操作,是已知性能最快的Key-Value DB。

Redis的出色之處不僅僅是性能,Redis最大的魅力是支持保存多種數據結構,此外單個value的最大限制是1GB,不像 memcached只能保存1MB的數據,因此Redis可以用來實現很多有用的功能,比方說用他的List來做FIFO雙向鏈表,實現一個輕量級的高性能消息隊列服務,用他的Set可以做高性能的tag系統等等。另外Redis也可以對存入的Key-Value設置expire時間,因此也可以被當作一 個功能加強版的memcached來用。

優點(好處)

  (1) 速度快,因爲數據存在內存中,類似於HashMap,HashMap的優勢就是查找和操作的時間複雜度都是O(1)
  (2) 支持豐富數據類型,支持string,list,set,sorted set,hash 
  (3) 支持事務,操作都是原子性,所謂的原子性就是對數據的更改要麼全部執行,要麼全部不執行
  (4) 豐富的特性:可用於緩存,消息,按key設置過期時間,過期後將會自動刪除

缺點

Redis的主要缺點是數據庫容量受到物理內存的限制,不能用作海量數據的高性能讀寫,因此Redis適合的場景主要侷限在較小數據量的高性能操作和運算上。

海量數據的高性能讀寫:可以使用Hbase(大數據)

redis中常用的數據類型:

String,Hash,List,Set,Sorted set,pub/sub,Transactions。

redis常見性能問題和解決方案:

1).Master寫內存快照,save命令調度rdbSave函數,會阻塞主線程的工作,當快照比較大時對性能影響是非常大的,會間斷性暫停服務,所以Master最好不要寫內存快照。

2).Master AOF持久化,如果不重寫AOF文件,這個持久化方式對性能的影響是最小的,但是AOF文件會不斷增大,AOF文件過大會影響Master重啓的恢復速度。Master最好不要做任何持久化工作,包括內存快照和AOF日誌文件,特別是不要啓用內存快照做持久化,如果數據比較關鍵,某個Slave開啓AOF備份數據,策略爲每秒同步一次。

3).Master調用BGREWRITEAOF重寫AOF文件,AOF在重寫的時候會佔大量的CPU和內存資源,導致服務load過高,出現短暫服務暫停現象。

4).Redis主從複製的性能問題,爲了主從複製的速度和連接的穩定性,Slave和Master最好在同一個局域網內

Reids安裝

Window 安裝

下載地址:https://github.com/MSOpenTech/redis/releases。

Redis 可支持 32 位和 64 位。這個根據你係統平臺的實際情況選擇,
現在下載 Redis-x64-xxx.zip壓縮包到 D 盤,解壓後,將文件夾重新命名爲 redis。

打開文件夾
在這裏插入圖片描述

打開一個 cmd 窗口 使用 cd 命令切換目錄到 D:\Program Files\redis 運行:

輸入 redis-server.exe redis.windows.conf 命令

在這裏插入圖片描述

這個時候再開啓一個 cmd 窗口,原來的不要關閉,不然就無法訪問服務端了。

切換到 redis 目錄下運行:
redis-cli.exe -h 127.0.0.1 -p 6379

設置鍵值對:
set myKey szh

取出鍵值對:
get myKey

在這裏插入圖片描述
Linux 安裝

官方下載地址:https://redis.io/download

頁面有三種版本,Unstable, Stable, 以及Docker . 我們選擇Statbele下載即可。

打開虛擬機輸入以下命令:
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz

記得安裝wget命令
yum -y install wget

$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make

make完後 redis-2.8.17目錄下會出現編譯後的redis服務程序redis-server,還有用於測試的客戶端程序redis-cli,兩個程序位於安裝目錄 src 目錄下:
下面啓動redis服務
$ cd src
$ ./redis-server

注意這種方式啓動redis 使用的是默認配置。也可以通過啓動參數告訴redis使用指定配置文件使用下面命令啓動。
$ cd src
$ ./redis-server ../redis.conf

redis.conf 是一個默認的配置文件。我們可以根據需要使用自己的配置文件。
啓動redis服務進程後,就可以使用測試客戶端程序redis-cli和redis服務交互了。 比如:
$ cd src
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
發佈了41 篇原創文章 · 獲贊 136 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章