国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

spring boot + redis

crossea / 2432人閱讀

摘要:而的緩存獨立存在于我們的應用之外,我們對數據庫中數據做了更新操作之后,沒有通知去更新相應的內容,因此我們取到了緩存中未修改的數據,導致了數據庫與緩存中數據的不一致。

redis緩存
參照網址:
http://blog.didispace.com/spr...
項目目錄
D:testgitCloneSpringBoot-LearningChapter4-4-1
git地址:https://github.com/loqvliulia...

注意事項:
1:啟動本地redis
2:實體類實現序列化,并生成UID

 (生成UID連接教程:http://www.cnblogs.com/qianzf/p/6811535.html)

測試Redis緩存機制:

使用redis ,填寫測試類----對應JPA的方法:

此時測試結果,第一次第二次調用時,是正確的,第三次不正確(上面設置了為20)

思考:
為什么同樣的邏輯在EhCache中沒有問題,但是到Redis中會出現這個問題呢?
在EhCache緩存時沒有問題,主要是由于EhCache是進程內的緩存框架,第一次通過select查詢出的結果被加入到EhCache緩存中,第二次查詢從EhCache取出的對象與第一次查詢對象實際上是同一個對象(可以在使用Chapter4-4-1工程中,觀察u1==u2來看看是否是同一個對象),因此我們在更新age的時候,實際已經更新了EhCache中的緩存對象。
而Redis的緩存獨立存在于我們的Spring應用之外,我們對數據庫中數據做了更新操作之后,沒有通知Redis去更新相應的內容,因此我們取到了緩存中未修改的數據,導致了數據庫與緩存中數據的不一致。
因此我們在使用緩存的時候,要注意緩存的生命周期!!(利用注解做好緩存的更新刪除)
解決方法:
在JPA中通過@CachePut來讓數據及時更新操作同步到緩存中:

在redis-cli中flushdb,清空一下之前的緩存內容,再執行單元測試,可以得到正確結果:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71201.html

相關文章

  • java | Spring BootRedis 實現 Cache 以及 Session 共享

    摘要:完成狀態編寫中已完成維護中原文是一個使用編寫的開源支持網絡基于內存可選持久性的鍵值對存儲數據庫維基百科是目前業界使用廣泛的基于內存的數據庫。 完成狀態 [ ] 編寫中 [ ] 已完成 [x] 維護中 原文 Redis Redis是一個使用ANSI C編寫的開源、支持網絡、基于內存、可選持久性的鍵值對存儲數據庫 ------ 維基百科 Redis 是目前業界使用廣泛的基于內存的...

    ssshooter 評論0 收藏0
  • 一起來學SpringBoot | 第九篇:整合Lettuce Redis

    摘要:相比它支持存儲的類型相對更多字符哈希集合有序集合列表,同時是線程安全的。基于的連接實例,可以在多個線程間并發訪問,且線程安全,滿足多線程環境下的并發訪問,同時它是可伸縮的設計,一個連接實例不夠的情況也可以按需增加連接實例。 SpringBoot 是為了簡化 Spring 應用的創建、運行、調試、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML...

    yacheng 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<