欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

springboot緩存之redis整合的方法-創(chuàng)新互聯(lián)

今天小編給大家分享一下springboot緩存之redis整合的方法的相關(guān)知識點,內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)是專業(yè)的錦屏網(wǎng)站建設(shè)公司,錦屏接單;提供網(wǎng)站設(shè)計、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行錦屏網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

    默認(rèn)使用的是ConcurrentMapCacheManager的ConcurrentMapCache作為緩存組件。

    使用ConcurrentMap的時候,是將數(shù)據(jù)保存在ConcurrentMap<Object,Object>當(dāng)中的。

    實際在開發(fā)過程中,我們經(jīng)常使用的,是一些緩存中間件的。

    比如我們經(jīng)常使用的redis,memcache,包括我們使用的ehcache,等等,我們都是使用一些緩存中間件。

    我們之前講解原理的時候,也發(fā)現(xiàn)了,springboot是支持很多的緩存配置的:

    如下圖所示的:

    springboot緩存之redis整合的方法

    默認(rèn)開始的配置的是:SimpleCacheConfiguration。

    其他的緩存是在什么時候開啟呢?

    我們可以ctrl+n搜索一下,這些配置類,然后進去看看他們的conditional條件:

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    這些都是表示,當(dāng)你導(dǎo)入了相應(yīng)的包的時候,這些配置才會是生效的哦。

    整合redis作為緩存

    如果有不會redis這個技術(shù)的同學(xué),尚硅谷當(dāng)中有周陽老師發(fā)布的redis系列的講解視頻?;蛘叽蠹铱梢宰羁斓卦L問redis的官方網(wǎng)站,來進行學(xué)習(xí),redis.cn是redis學(xué)習(xí)的中文網(wǎng)。

    安裝redis

    搜索redis鏡像

    springboot緩存之redis整合的方法

    這個是連接國外的倉庫,速度是比較慢的。

    我們推薦使用docker 中國。

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    docker pull registry.docker-cn.com/library/redis

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    啟動redis鏡像

    docker run -d -p 6379:6379 --name myredis [REPOSITORY]
    docker ps

    為了測試,打開redis的連接工具。

    redis desktop manager

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    測試redis常用的數(shù)據(jù)操作

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    redis操作list

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    redis的set操作

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    引入redis的starter

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    配置redis

    springboot緩存之redis整合的方法

    簡單說下redis原理

    我們引入了redis的starter之后,redisAutoConfiguration就起作用了。

    springboot緩存之redis整合的方法

    這個RedisAutoConfiguration是給容器當(dāng)中加入了兩個組件:

    springboot緩存之redis整合的方法

    給容器中加入的組件,一個是叫做RedisTemplate,一個是叫做StringRedisTemplate,兩個東西。

    這兩個東西就是用來操作redis的。

    這就跟大家以前用的jdbcTemplate一樣,用來操作數(shù)據(jù)庫的東西。

    這就是spring用來簡化操作redis的兩個template,如果在程序當(dāng)中想要用這兩個東西,就自動注入就可以了。

    springboot緩存之redis整合的方法

    redis測試

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    redis操作list:

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    redis測試保存對象

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    這些看不懂的玩意,全部都是序列化的結(jié)果。

    redisTemplate默認(rèn)的序列化規(guī)則

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    默認(rèn)的序列化器,就是使用的JdkSerializationRedisSerializer。

    默認(rèn)的序列化器,就是使用的JDK的序列化器。

    我們來切換成json的序列化器,就可以了。

    redis配置

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    在測試類當(dāng)中,自動注入我們自己配置的redisTemplate。

    springboot緩存之redis整合的方法

    然后我們再次測試保存對象。

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    這就說明了,我們的序列化器修改成功了。

    這就說明白了,如果我們后面要保存對象的時候,我們經(jīng)常是要修改序列化器的。

    springboot緩存之redis整合的方法

    測試緩存

    springboot緩存之redis整合的方法

    我們之前使用的是ConCurrentMap的緩存管理器的。
    這個緩存管理器,幫我們來創(chuàng)建出來緩存組件的。
    緩存組件來實際給緩存中,進行CRUD的工作的。

    現(xiàn)在我們引入了redis之后,會發(fā)生什么樣的效果呢?
    我們還是在application.properties當(dāng)中將debug=true,這樣就可以將自動配置報告來打開。
    這樣的時候,我們重新啟動我們的程序,在控制臺當(dāng)中,我們?nèi)ニ阉饕幌隆?br/>看看是哪一個自動配置類,是生效的呢?

    springboot緩存之redis整合的方法

    原來默認(rèn)開啟的是:SimpleCacheConfiguration的。

    現(xiàn)在我們引入了redis相關(guān)的starters之后,程序默認(rèn)開啟的是RedisCacheConfiguration了。

    springboot緩存之redis整合的方法

    啟動程序,直接進行測試就可以了。

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    說明第一次查詢的時候,是查詢數(shù)據(jù)庫了。

    第二次查詢的時候,控制臺是沒有任何輸出的,說明是查詢了緩存了。

    緩存默認(rèn)是只有redis開啟的。

    那么肯定是在redis當(dāng)中了。

    我們可以查看一下:

    springboot緩存之redis整合的方法

    這個說明一個問題,在k和v都是object的時候,默認(rèn)保存對象的時候,利用序列化來保存的。我們是想要讓redis自動保存為json的。

    我們應(yīng)該怎么做呢?

    我們先來分析一下這些過程當(dāng)中的原理。

    1、我們是引入了redis的starter,所以我們的cachemanager變?yōu)榱藃ediscachemanager了,

    2、默認(rèn)創(chuàng)建的rediscachemanager在操作我們的數(shù)據(jù)的時候,傳入了一個redistemplate的東西。

    springboot緩存之redis整合的方法

    3、這個redistemplate是redisautoconfiguration幫我們創(chuàng)建的。這個redistemplate默認(rèn)使用的序列化機制是jdkserializationredisserializer的。這個就是相當(dāng)于,redis默認(rèn)給我們防止的redisCacheManager還不太符合我們的要求的。

    我們怎么辦呢?

    我們應(yīng)該自定義CacheManager的。

    自定義redisCacheManager

    springboot緩存之redis整合的方法

    這個時候,我們再啟動項目,來進行測試,這個時候,我們就可以看到redis當(dāng)中的結(jié)果,是我們想要的了。

    springboot緩存之redis整合的方法

    韞秋下次面試的時候,就可以問那些想要來軟件園的人,說,你知道redis starter保存對象的時候,redisTemplate默認(rèn)的序列化規(guī)則是什么嗎?

    如果我們在使用redis的過程中,我們想要修改默認(rèn)的序列化規(guī)則,我們應(yīng)該怎么做呢?

    我們可以自定義redisCacheManager,然后自定義redisTemplate,在redisTemplate當(dāng)中傳入json相關(guān)的序列化器的哦。

    springboot緩存之redis整合的方法

    遺留的小問題

    數(shù)據(jù)庫

    我們在數(shù)據(jù)庫當(dāng)中的,department表當(dāng)中,放進去一條數(shù)據(jù):

    springboot緩存之redis整合的方法

    mapper

    我們寫一個對應(yīng)的department操作的mapper。

    springboot緩存之redis整合的方法

    service

    我們再寫一個對應(yīng)的service

    springboot緩存之redis整合的方法

    controller

    springboot緩存之redis整合的方法

    啟動項目測試

    springboot緩存之redis整合的方法

    然后我們看看redis當(dāng)中,是否是有數(shù)據(jù)的呢?

    springboot緩存之redis整合的方法

    我們看了,redis當(dāng)中dept相關(guān)的數(shù)據(jù),是有的。

    我們第二次來查詢dept的時候,就應(yīng)該走緩存redis了。

    但是我們第二次去查詢的,時候,出現(xiàn)了下面的錯誤。

    錯誤

    springboot緩存之redis整合的方法

    上面報錯的意思就是說,不能夠去讀取json的。

    因為是要把部門的json對象,轉(zhuǎn)換成為員工的json對象,這是不可以的。

    這個就是因為,我們放置的redisCacheManager是操作員工的。

    springboot緩存之redis整合的方法

    所以,現(xiàn)在我們看到的這個效果,就是很神奇的哦。

    緩存的數(shù)據(jù),能夠存入到redis當(dāng)中。

    但是我們第二次從緩存中查詢的時候,就不能夠反序列化回來了。

    原來就是,我們存的是dept的json的數(shù)據(jù),我們的cachemanager,默認(rèn)是用employee的template來操作redis的。

    這個東西只能夠?qū)mployee的數(shù)據(jù)反序列化過來的。

    解決錯誤

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    這個時候,就等于有了2個redisCacheManager了,我們用哪個呢?

    我們在service當(dāng)中,是可以指定的。

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    然后我們重啟項目,結(jié)果是報錯了:

    springboot緩存之redis整合的方法

    如果,我們是有多個cacheManager的話,我們一定是要把某一個cacheManager作為,我們的默認(rèn)配置的緩存管理器的。

    比如,我們可以進行下面的操作,來修復(fù)這個啟動報錯的內(nèi)容的呢:

    springboot緩存之redis整合的方法

    重新啟動進行項目測試

    這個時候,看看,我們在進行第二次部門查詢的時候,能不能夠正常地,成功地,從redis當(dāng)中反序列化地讀取到,我們的部門信息呢?

    springboot緩存之redis整合的方法

    springboot緩存之redis整合的方法

    這個時候,我們就發(fā)現(xiàn),不管是員工還是部門,我們都是可以從redis當(dāng)中反序列化成功查詢的。

    這個就是很完美的啦。

    編碼的方式操作緩存

    前面我們說的,全部都是使用注解的方式,來給緩存當(dāng)中,來放置數(shù)據(jù)的。

    但是,在開發(fā)當(dāng)中,我們經(jīng)常會,遇到這樣的情況。

    就是,我們開發(fā)進行到某個階段,我們是需要將一些數(shù)據(jù),放到緩存當(dāng)中的。

    我們是需要,使用編碼的方式,來操作緩存的。

    比如我們在查詢出來了部門的信息之后,就希望把這個信息,放入到redis當(dāng)中。

    我們可以把部門的cacheManager注入進來。

    springboot緩存之redis整合的方法

    然后我們在編碼的過程中,可以通過操作這個cacheManager來獲取緩存,

    然后,再操作緩存組件,來對數(shù)據(jù)進行增刪改查。

    springboot緩存之redis整合的方法

    我們對上面的代碼,啟動項目進行測試,發(fā)現(xiàn)是可以的,是成功地給redis當(dāng)中放進去了數(shù)據(jù)的:

    springboot緩存之redis整合的方法

    以上就是“springboot緩存之redis整合的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

    網(wǎng)站欄目:springboot緩存之redis整合的方法-創(chuàng)新互聯(lián)
    本文路徑:http://aaarwkj.com/article48/cdpshp.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、ChatGPT搜索引擎優(yōu)化、網(wǎng)站設(shè)計公司、靜態(tài)網(wǎng)站

    廣告

    聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

    外貿(mào)網(wǎng)站制作
    男男啪啪猛进猛出无遮挡| 一区二区亚洲欧美精品| 中文字幕在线一级色视频| 日本黄色录像在线观看| 怡红院怡春院视频免费看| 国产一区二区精品久久岳| 久久99精品久久久子伦| 午夜神马福利激情视频| 国产男女免费操作视频| 亚洲欧美日韩国产精品专区 | av东京热免费看一区| 日本人妻系列中文字幕| 曰本真人性做爰视频免费| 国产一区二区三区性色| 亚洲精品一级黄色片| av男人的天堂在线免费| 久久久国产一区二区三区| 说中文字幕的黄色大网站| 亚洲国产欧美日韩一区| 青青草青青草在线观看视频| 福利视频免费观看欧美| 亚洲经典日韩欧美一区| av剧情在线观看免费| 亚洲av综合日韩精品久久| 国产女主播在线观看视频| 国产国语久久91老女人| 国产男女猛进猛出精品91| 漂亮人妻被中出中文字幕| 久久国产精品午夜亚洲欧美| 五月婷婷少妇中文字幕| 亚洲午夜天堂在线a毛片| 伊人婷婷综合激情网| 国产91九色蝌蚪在线观看| 国产精品美女露脸av毛片| 国产综合永久精品日韩鬼片| 国产一区二区黑丝美女| 亚洲国产一区二区精品| 丝袜美腿亚洲综合一区| 色婷婷综合激情一区二区| 大香蕉欧美日韩在线视频| 色综合色很天天综合色|