1. 程式人生 > >springboot 2.0 教程-07-整合redis快取框架

springboot 2.0 教程-07-整合redis快取框架

閱讀原文:https://blog.bywind.cn/articles/2018/11/28/1543373589258.html
視訊教程:https://www.bilibili.com/video/av35595465
課程原始碼:https://github.com/ibywind/springboot-learn
關注公眾號 檢視更多技術乾貨
還可加群 , 眾多好基友在等你
mpjpg

springboot 書籍 PDF 下載

掃描關注上方公眾號
回覆關鍵字 boot
就可以下載這本書了
書籍的排版很好的,我自己也在看.大家可以一起交流哦
1_png

寫在前面

hello 大家好

歡迎大家收看御風大世界

本次課是

springboot 系列教程第7課

我將為大家演示

springboot 如何整合redis 來做快取框架

為什麼要用快取

快取的目的是快速獲取資料

減少伺服器讀寫的壓力

對於一個存在資料庫訪問的網站來講

頻繁的去訪問Mysql 資料庫

顯然是 效能非常低下的

如果我們可以將一些熱點資料

做資料預熱 放到快取中 , 獲取時 直接走快取拿資料

那麼對於後端資料的 壓力降減小很多的

對於整個網站的效能和使用者體驗也是很大的提升.

這個圖片是沒有用到快取

我們直接訪問資料

拿到資料然後交給客服端

下面這個圖片是用到Redis 作為快取的

我們在DB之上 假設了一道快取 服務.

用於快取結果 , 用於提升訪問效能,減少DB壓力

redis優勢

首先 redis 是一種 nosql 資料庫

我們說nosql 可能大家會認為是

不能寫 SQL語句的 資料庫吧

其實 no 也可以翻譯為 not only 的意思

就是不僅僅是 sql , nosql 資料庫不僅僅能實現 傳統SQL資料庫的資料能力

同時在某些特定場景 特們體現的 效能 和 優越性 要 遠超 傳統SQL 資料庫

下圖是 目前主流 nosql 資料庫的一個對比

目前 網際網路公司用的最多的 就是 Redis了

redis的優點 我總結的有下面這些

(1) 速度快,因為資料存在記憶體中,類似於HashMap,HashMap的優勢就是查詢和操作的時間複雜度都是O(1)

(2) 支援豐富資料型別,支援string,list,set,sorted set,hash

(3) 支援事務,操作都是原子性,所謂的原子性就是對資料的更改要麼全部執行,要麼全部不執行

(4) 豐富的特性:可用於快取,訊息,按key設定過期時間,過期後將會自動刪除

當然這裡可能不完整 , 大家可以去百度搜索你想要的

我們來到 redis.io 官網

目前最新的穩定版本是 5.0

然後我發現了一個 try redis 的連線

開啟之後是這樣的

你可以嘗試在裡面 寫一些 redis cli 的 命令

然後看下效果

用來上手 redis 或者學習redis 的 一些命令列操作還是很不錯的

整合redis

首先需要在windows 下面安裝 redis

如果你已經有了一個可以訪問的redis這一步可以跳過了

https://github.com/MicrosoftArchive/redis/releases

點選這個連結下載

這兩個 都是可以的 一個是 執行程式 需要點選安裝

另外一個是 壓縮包 相當於 綠色版

解壓之後 我們看到這些檔案

其中 redis.windows.conf 就是 配置檔案了 你可以進去修改一些東西的

我們這裡使用預設的

我們用命令列啟動 這個redis 例項

使用CMD 命令列 執行下面的 命令 就可以了

redis 執行在 6379

需要注意的是 你目前 是 當前會話

如果你關閉這個 CMD 視窗的化 程序自己就消失了

你過你需要後臺執行的化 你需要加 &

接下來我們來到 springboot專案

springboot官方對於 redis 有一個很好的支援

我麼直接匯入這個依賴

我麼加入maven 依賴之後

我們看到我們的統一配置檔案

那些 綠色的值 就是 springboot的預設配置

看來這裡 我們又不需要 做任何的修改了

哈哈 開心

因為 我們會用到 jedis 作為 redis 訪問的 JAVA實現

所以有一些 jedis 的配置項 我們需要搞一下

程式碼和測試

我們的程式碼很簡單

首先你只需要引用spring 自己的redis操作類就可以了

測試的方法

我就是簡單的

set | get

因為其他的技術API了, 一通百通的事

結束語

如果大家對於這裡比較感興趣的話

可以去B站檢視我的視訊講解

https://space.bilibili.com/193580090/#/

或者是在 github下載原始碼

https://github.com/ibywind/springboot-learn