當前位置:編程學習大全網 - 源碼下載 - SpringBoot進階之緩存中間件Redis

SpringBoot進階之緩存中間件Redis

大家好,壹直以來我都本著 用最通俗的話理解核心的知識點, 我認為所有的難點都離不開 「基礎知識」 的鋪墊

「大佬可以繞過 ~」

本節給大家講講 「Java的SpringBoot框架」 , 之前我們學習的都是java的基礎知識和底層提供的壹些能力,我們日常工作都是在寫接口。在我們在產品開發中,壹般我們都會選擇比較穩定的框架來幫我們加速開發,不會自己去造輪子,而在java眾多框架中,spring框架表現的非常好,大部分公司都會首選它作為開發框架,而至今,大部分企業都是以 springboot 來構建項目了,壹個穩健的系統需要引入穩定的技術~

如果妳是壹路看過來的,很高興妳能夠耐心看完。前幾期都是帶大家學習了 SpringBoot 的基礎使用以及集成 mybatis 開發,這也是我們寫業務的基礎,如果妳還不熟悉這些,請先看完它們。接下來的幾期內容將會帶大家進階使用,會先講解基礎 中間件 的使用和壹些場景的應用,或許這些技術妳聽說過,沒看過也沒關系,我會帶大家壹步壹步的入門,耐心看完妳壹定會有 收獲 ,本期將會給大家講解最熱門的緩存中間件技術 Redis ,同樣的,我們集成到 Springboot 中。最近github可能會被墻,所以我把源碼放到了國內gitee上,本節我們依然使用上期的代碼

Redis 是由意大利人Salvatore Sanfilippo(網名:antirez)開發的壹款內存高速緩存數據庫。全稱叫 Remote Dictionary Server(遠程數據服務) 是由 C語言 編寫的,Redis是壹個 key-value 存儲系統,它支持豐富的數據類型,如: string、list、set、zset(sorted set)、hash

它本質上是壹種鍵值對數據庫,我們之前學習的 mysql 它是持久層的關系型數據庫,而 redis 它的存儲主要存在 內存 中。我們都知道在 內存 中的數據讀取是非常快的,就好比妳把壹個變量存到磁盤讀取和直接放到代碼中運行,肯定是在代碼中拿到的速度快,因為運行時期,都是直接存到內存的。

給大家總結壹下:

有了基本的概念之後,我們下面進行環境搭建,在學習階段,安裝 redis 很簡單,生產環境壹般我們也會選擇雲產品,壹切為了服務保障,雖說它只是做緩存用,但也是系統的壹把 保護傘

如果妳是 mac 用戶,妳可以運行如下命令:

安裝完成後會提示妳運行命令,運行即可。

win 用戶也很簡單,直接下載 redis 軟件,雙擊運行即可,運行之後它會有壹個小方塊的圖案,和 locahost:6379 的log,說明運行成功了。初始階段沒有配置的 redis 默認 host 就是本地, port 就是 6379 , 而且是 沒有密碼 就可以訪問的。

推薦壹個客戶端軟件 Redis Desktop Manager ,它是 redis 的客戶端界面軟件,方便面我們學習的時候 清理緩存 使用,生產慎連。

我們不給大家講它的基本命令使用,它也有語法,可以通過類似命令執行,如果想學習的小夥伴,可以自行搜索。本期重點內容是在 sprinboot 中的使用,我們平時開發不可能是去命令行裏敲的,都是代碼裏執行,而目前市面上有很多封裝好的庫,我們可以直接調用它的方法,很方便的就可以操作它了,不用記壹些繁瑣的命令,下面我們就實際操作壹下:

修改 pom.xml

修改 application.yml :

redis 默認是有 16 個庫,不是 15 個啊,從 0 開始算的,我們隨便連壹個

通過代碼很好理解, 首先需要引入 StringRedisTemplate ,然後需要設置壹個 key ,那麽思考壹下,這個 key 允許重復嗎

我們進客戶端看壹下,發現 key 還是只有壹個,但是值變成了新的值了,所以可以得知 key 是唯壹的,我們重新設置的時候相當於刷新了它。

redis 中刪除緩存有兩種方式,壹種是自我消亡,也就是 過期 銷毀,還有有壹種是 主動 銷毀,我們先看壹下,過期時間如何設置

我們設置了 10s 後過期,過完10s後發現,這個```key data``消失了。我們在看看如何主動刪除

我們可以利用 Redis 做壹個計數器,實現自增功能,妳可以用它做網站訪問統計

通常做法,我們會把它封裝壹下,後續使用直接引入封裝好的即可,把它直接交給 Springboot容器 管理

其實這個類,妳還可以繼續進壹步封裝,比如約束 key 的規範,約束過期時間,約束數據類型等等,這壹切也都是為了規範和後期維護,防止濫用緩存

緩存的主要場景是用於解決熱點數據問題,因為這些數據是訪問頻率比較高的,當大量的請求進來, mysql 可能壓力很大,這樣壹來,數據查詢效率就很慢,用戶肯不高興等了,這樣用戶體驗很不好。所以我們壹般做法,都是把這些熱點數據放到緩存裏,因為緩存讀取速度很快。當有新數據的時候,我們再及時更新它,壹般流程是先查詢緩存,查到了直接返回緩存數據,查不到再走數據庫,然後再刷回緩存。

但是並發足夠大的時候,還是會暴露出很多問題,比如面試常問的壹些高頻問題 緩存雪崩、緩存穿透、緩存雪崩 ,這些問題後邊會給大家專門講,和如何去防範。所以總的來說,引入任何壹門技術並不是萬事大吉,還需我們不斷的在實踐中積累經驗

本期到這裏就結束了,總結壹下,我們了解了什麽是 redis ,以及在 springboot 中如何去使用它們,很簡單,沒什麽復雜的東西。但這裏想多說壹點的是,緩存的設計卻是很復雜的,因為工具是死的,人是活的,我們如何正確設計,需要我們在項目中不斷的積累。

我們之前教大家查詢列表數據,都是所有數據返回,還沒有教大家如何去做分頁,下期將帶大家學習壹下 mybatis 分頁插件的使用 ,下期不見不散, 關註我,不迷路~

  • 上一篇:附加指示器源代碼
  • 下一篇:python遊戲引擎有哪些?
  • copyright 2024編程學習大全網