1. 程式人生 > >【本人禿頂程式設計師】關於redis,學會這8點就夠了

【本人禿頂程式設計師】關於redis,學會這8點就夠了

←←←←←←←←←←←← 我都禿頂了,還不點關注!

一、redis是什麼

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

二、支援的語言

在這裡插入圖片描述

三、redis的應用場景有哪些

1、會話快取(最常用)
2、訊息佇列,比如支付
3、活動排行榜或計數
4、釋出、訂閱訊息(訊息通知)
5、商品列表、評論列表等

四、redis資料型別

Redis一共支援五種資料類:

string(字串)、hash(雜湊)、list(列表)、set(集合)和zset(sorted set 有序集合)。

1、string(字串)

它是redis最基本的資料型別,一個key對應一個value,需要注意是一個鍵值最大儲存512MB。
在這裡插入圖片描述

2、hash(雜湊)

redis hash是一個鍵值對的集合, 是一個string型別的field和value的對映表,適合用於儲存物件
在這裡插入圖片描述

3、list(列表)

是redis簡單的字串列表,它按插入順序排序
在這裡插入圖片描述

4、set(集合)

是string型別的無序集合,也不可重複
在這裡插入圖片描述

5、zset(sorted set 有序集合)

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

五、redis服務相關的命令

在這裡插入圖片描述

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

六、redis的釋出與訂閱

redis釋出與訂閱(pub/sub)是它的一種訊息通訊模式,一方傳送資訊,一方接收資訊。

下圖是三個客戶端同時訂閱同一個頻道
在這裡插入圖片描述

下圖是有新資訊傳送給頻道1時,就會將訊息傳送給訂閱它的三個客戶端
在這裡插入圖片描述

七、redis持久化

redis持久有兩種方式:

Snapshotting(快照)、Append-only file(AOF)

Snapshotting(快照)

1、將儲存在記憶體的資料以快照的方式寫入二進位制檔案中,如預設dump.rdb中

2、save 900 1
900秒內如果超過1個Key被修改,則啟動快照儲存

3、save 300 10
300秒內如果超過10個Key被修改,則啟動快照儲存

4、save 60 10000
60秒內如果超過10000個Key被修改,則啟動快照儲存

Append-only file(AOF)

1、使用AOF持久時,服務會將每個收到的寫命令通過write函式追加到檔案中(appendonly.aof)

2、AOF持久化儲存方式引數說明

appendonly yes  
    #開啟AOF持久化儲存方式 
appendfsync always 
    #收到寫命令後就立即寫入磁碟,效率最差,效果最好
appendfsync everysec
    #每秒寫入磁碟一次,效率與效果居中
appendfsync no 
    #完全依賴OS,效率最佳,效果沒法保證

八、redis 效能測試

自帶相關測試工具
在這裡插入圖片描述

實際測試同時執行100萬的請求在這裡插入圖片描述

寫在最後:

禿頂程式設計師的不易,看到這裡,點了關注吧!
點關注,不迷路,持續更新!!!