Redis必須知道的幾點

2020-08-13 00:26:27

1.Redis是什麼?

Redis是一種支援Key-Value等多種數據結構的儲存系統。可用於快取,事件發佈或訂閱,高速佇列等場景。該數據庫使用ANSI C語言編寫,支援網路,提供字串,雜湊,列表,佇列,集合結構直接存取,基於記憶體,可持久化。

2.Redis支援的語言

市場上常見的語言 Redis基本上都支援,如java,JavaScript,C,C#,C++,PHP,Python,R,Ruby,Rust,R等多種語言。

3.Redis的應用場景

1,對談快取(最常用)
2,訊息佇列,比如支付
3,活動排行榜或計數以及秒殺活動
4,發佈,訂閱訊息(訊息通知)
5,商品列表,評論列表等

4.Redis支援快取的數據型別

Redis一共支援五種數據類:string(字串),hash(雜湊),list(列表),set(集合)和zset(sorted set有序集合)。
(1)字串(字串)
它是redis的最基本的數據型別,一個鍵對應一個值,需要注意是一個鍵值最大儲存512MB。
图片: https://uploader.shimo.im/f/AahRhJf4z0V5iYc2.png

(2)hash(雜湊)
redis ,是一個string型別的field和value的對映表,適合用於儲存物件。
图片: https://uploader.shimo.im/f/zMJxnlqw34vuNqfj.png

(3)表(列表)
是redis的簡單的字串列表,它按插入順序排序
图片: https://uploader.shimo.im/f/serDLtdHYyRxdkkO.png

(4)組(集合)
是字串型別的無序集合,也不可重複
在这里插入图片描述

(5)zset(sorted set有序集合)
是string型別的有序集合,也不可重複
有序集閤中的每個元素都需要指定一個分數,根據分數對元素進行升序排序,如果多個元素有相同的分數,則以字典序進行升序排序,sorted set因此非常適合實現排名
在这里插入图片描述

5.redis的服務相關的命令

图片: https://uploader.shimo.im/f/le3MpDKuTs77cST2.png

slect#選擇數據庫(數據庫編號0-15)
退出#退出連線
資訊#獲得服務的資訊與統計
monitor#實時監控
config get#獲得服務設定
flushdb#刪除當前選擇的數據庫中的key
flushall#刪除所有數據庫中的鍵

6.redis的發佈與訂閱

redis的發佈與訂閱(發佈/訂閱)是它的一種訊息通訊模式,一方發送資訊,一方接收資訊。
下圖是三個用戶端同時訂閱同一個頻道
图片: https://uploader.shimo.im/f/IDQZVh0nlsSS8zCF.png

下圖是有新資訊發送給頻道1時,就會將訊息發送給訂閱它的三個用戶端
在这里插入图片描述

7.redis的持久化

redis持久有兩種方式:快照(快照),僅附加檔案(AOF)
快照(快照)
1,將儲存在記憶體的數據以快照的方式寫入二進制檔案中,如預設dump.rdb中
2,儲存900 1
#900秒內如果超過1個Key被修改,則啓動快照儲存
3,儲存300 10
#300秒內如果超過10個Key被修改,則啓動快照儲存
4,儲存60 10000
#60秒內如果超過10000個重點被修改,則啓動快照儲存

僅附加檔案(AOF)
1,使用AOF持久時,服務會將每個收到的寫命令通過寫函數追加到檔案中(appendonly.aof)
2,AOF持久化儲存方式參數說明
appendonly yes
#開啓AOF持久化儲存方式
appendfsync always
#收到寫命令後就立即寫入磁碟,效率最差,效果最好
appendfsync everysec
#每秒寫入磁碟一次,效率與效果居中
appendfsync no
#完全依賴操作系統,效率最佳,效果沒法保證

8.redis的效能測試

自帶相關測試工具
图片: https://uploader.shimo.im/f/5ERebxX4d3A7vP1f.png

實際測試同時執行100萬的請求
图片: https://uploader.shimo.im/f/ZCL4uUEIvx6WyWvW.png