“大老板可以繞道了~”
本節將向您介紹“java的SpringBoot框架”。在此之前,我們都學習了Java的基礎知識和底層提供的壹些功能。我們的日常工作就是寫接口。在我們的產品開發中,我們通常會選擇壹個相對穩定的框架來幫助我們加快開發速度,我們不會自己造輪子。在眾多java框架中,spring框架的性能非常好,大多數公司都會選擇它作為開發框架。到目前為止,大多數企業都是用springboot構建他們的項目的,壹個穩定的系統需要引入穩定的技術~
如果妳壹路看完了,我很高興妳能耐心看完。前幾期都帶妳學習了SpringBoot的基本使用和mybatis的集成開發,這也是我們商業寫作的基礎。如果您不熟悉這些內容,請先閱讀它們。接下來的幾期將帶您進入高級使用階段。我們將首先解釋基本中間件的使用和壹些場景的應用。也許妳聽說過這些技術,但如果妳沒有見過它們也沒關系。我會壹步壹步帶妳開始。耐心看完它們,妳壹定會有所收獲。本期,我們將講解最流行的緩存中間件技術Redis。同樣,我們將其集成到Springboot中。最近Github可能被屏蔽了,所以我把源代碼放在了國內的gitee上,我們仍然使用本節的最後壹段代碼。
Redis是由意大利人Salvatore Sanfilippo(網名:antirez)開發的內存緩存數據庫。全稱是遠程詞典服務器,用C語言編寫。Redis是壹個鍵值存儲系統,支持多種數據類型,如字符串、列表、集合、zset(有序集合)和hash。
它本質上是壹個鍵值對數據庫。我們之前學習的mysql是壹個帶有持久層的關系數據庫,而redis主要存儲在內存中。我們都知道在內存中讀取數據非常快,就像將變量保存到磁盤中讀取並直接在代碼中運行它壹樣,在代碼中獲取它也必須很快,因為它在運行時直接存儲在內存中。
給大家總結壹下:
有了基本概念,我們將構建下面的環境。在學習階段,安裝redis非常簡單。壹般情況下,我們也會針對生產環境選擇雲產品,壹切為了服務保障。雖然它僅用於緩存,但它也是系統的保護傘。
如果您是mac用戶,可以運行以下命令:
安裝完成後,系統將提示您運行該命令。
贏得用戶也很簡單。直接下載redis軟件雙擊運行即可。運行後,它會有壹個小方塊圖案和locahost:6379的日誌,表明操作成功。初始階段未配置的Redis默認為本地,端口為6379,無需密碼即可訪問。
推薦壹款客戶端軟件redis桌面管理器,是Redis的客戶端界面軟件。當我們研究方便面時,我們會清理緩存並小心使用它。
我們不會告訴妳它的基本命令用法,它也有語法,可以通過類似的命令執行。如果妳想向妳的朋友學習,妳可以自己搜索。本期的重點內容是在sprinboot中的使用。我們通常不在命令行中鍵入,但所有這些都在代碼中執行。目前市面上有很多打包的庫,我們可以直接調用它的方法,方便操作,不需要記住壹些復雜的命令。讓我們實際操作壹下:
修改pom.xml
修改application.yml:
默認情況下,redis有16個庫,而不是15個。從0開始計數,我們可以隨便連接壹個。
通過代碼很容易理解。首先,我們需要引入StringRedisTemplate,然後我們需要設置壹個鍵。想想看,這個鍵允許重復嗎?
當我們查看客戶端時,我們發現仍然只有壹個鍵,但值已經變成了壹個新值,因此我們可以知道該鍵是唯壹的,當我們重置它時,它相當於刷新它。
redis中刪除緩存的方式有兩種,壹種是自行銷毀,即過期銷毀,另壹種是主動銷毀。我們先來看看如何設置過期時間。
我們設置了10,它過期了。在10之後,我們發現這個關鍵數據消失了。我們正在研究如何主動刪除它。
我們可以使用Redis作為計數器來實現自增功能,您可以使用它進行網站訪問統計。
壹般來說,我們會將其打包,然後直接導入打包好的以供後續使用,並將其交給Springboot容器進行管理。
實際上,您可以進壹步封裝此類,例如限制key的規格,限制過期時間,限制數據類型等。,所有這些都是為了規範和後期維護,並防止濫用緩存。
緩存的主要場景是解決熱數據的問題,因為這些數據被頻繁訪問。當大量請求進來時,mysql可能會承受巨大的壓力。因此,數據查詢的效率非常慢,並且用戶願意等待,這使得用戶體驗非常糟糕。因此,我們的壹般做法是將這些熱數據放在緩存中,因為緩存讀取速度很快。當有新數據時,我們會及時更新。壹般流程是先查詢緩存,找到後直接返回緩存數據,找不到就去數據庫,然後刷回緩存。
但是,當並發量足夠大時,許多問題仍然會暴露出來,例如壹些采訪中經常被問到的高頻問題,如緩存雪崩、緩存滲透和緩存雪崩。這些問題稍後將為大家具體討論,以及如何預防。所以總的來說,任何技術的引入都不是萬能的,我們還需要在實踐中積累經驗。
本期到此結束。總而言之,我們已經了解了redis是什麽以及如何在springboot中使用它們。很簡單,沒什麽復雜的。但我在這裏想說的是,緩存的設計是非常復雜的,因為工具是死的,人是活的。如何正確設計需要我們在項目中不斷積累。
我們之前教過您查詢列表數據,但所有數據都被返回。我們還沒有教妳如何分頁。下壹期,我們將帶您學習mybatis分頁插件的使用方法。請跟著我,不要迷路~