解決Redis 緩存雪崩(過期時間不一致) 和 緩存穿透(黑名單)

?解決Redis 緩存雪崩(過期時間不一致) 和 緩存穿透(黑名單)

   public Product getdetailById(Integer id) {String key =  "product." + id;// 查詢黑名單中是否有該keyBoolean b  = hashOperations.hasKey(PROODUCT_DETAIL_BLACK, key);if(b){log.error("商品不存在id=>{}",id);throw new BizException(201,"商品不存在在黑名單id=>"+id);}//如果黑名單沒有該key,先查緩存Product product = valueOperations.get(PROODUCT_DETAIL+id);if (ObjectUtil.isNotEmpty(product)) {return product;}//緩存不存在,查詢數據庫log.debug("緩存不存在,查詢數據庫");product = productDao.selectById(id);if(ObjectUtil.isEmpty(product)){log.error("數據庫中不存在該商品id=>{}",id);//在將該商品加入黑名單中hashOperations.put(PROODUCT_DETAIL_BLACK,key, DateUtil.now());throw new BizException(202,"商品不存在id=>"+id);}int i = RandomUtil.randomInt(-60, 60);//將查詢出來的數據放到redis中;valueOperations.set(PROODUCT_DETAIL+ id, product,60*24+i, TimeUnit.MINUTES);return product;}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14570.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14570.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14570.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法 Hw7

Hw 7 Graph Algorithm 1 Edge detection2 Reachability3 Bitonic shortest paths 1 Edge detection 由 Cut Property 可知:如果 e 是從某個集合 S 到補集 V?S 的開銷最小的邊,則 e 一定所有最小生成樹中。 由 Cycle Property 可知:如果 e 是…

Gradle常見問題及總結

使用android studio開發項目,難免遇到gradle相關的錯誤,在此總結。 gradle插件與gradle home版本關系錯誤 參考更新 Gradle Gradle下載太慢 Index of /gradle/ (tencent.com) 是國內下載地址,手動下載對應版本即可 緩存不刷新 問題描述 maven發布…

jenkins插件之xunit

分析測試工具執行的結果,并圖形化,比如phpunit,phpstan,可分析junit格式的結果 安裝jenkins插件 搜索xunit并安裝 項目配置 配置 - Build Steps 您的項目 - 配置 - Build Steps, 新增 Run with timeout 超時時間根據實際情況配置 Build…

Day38 貪心算法part05

LC435無重疊區間(未掌握) 思路:先對數組進行排序,找到非重疊的區間的個數,然后區間的總數減去非重疊區間的個數即是需要移除的區間的個數與LC452用最少數量的箭引爆氣球類似,但是不同的是[1,2]和[2,3]在此題并不是重疊區間但是在…

oracle怎么處理json格式

向數據庫導入json相關jar包 loadjava -r -f -u bsuser/XXXX192.168.10.31/bsorcl json.jar 要刪除的話,刪除指定jar dropjava -u bsuser/XXXX192.168.10.31/bsorcl json.jar select * from user_java_classes 然后我們就可以取到json串中任意節點的值

Linux完整版命令大全(四)

2. linux系統設置命令 alias 功能說明:設置指令的別名。語  法:alias[別名][指令名稱]補充說明:用戶可利用alias,自定指令的別名。若僅輸入alias,則可列出目前所有的別名設置。 alias的效力僅及于該次登入的操作。…

行列視(RCV)部署在互聯網還是部署在企業內部?

行列視(RCV)的部署方式可以根據企業的具體需求和情況來靈活選擇。它既可以部署在互聯網上,也可以部署在企業內部。 對于希望實現遠程訪問、多地點協同工作或者與第三方服務集成等需求的企業,可以選擇將行列視(RCV&…

Postgresql源碼(129)JIT函數中如何使用PG的類型llvmjit_types

0 總結 llvmjit_types文件分三部分 類型定義:llvm通過變量找到對應結構體的定義,在通過結構體內的偏移量宏使用成員變量。模版函數定義: 第一:AttributeTemplate被當做一個函數屬性的模板(例如nofree、nosync等clang…

SpringBoot項目中redis序列化和反序列化LocalDateTime失敗

實體類中包含了LocalDateTime 類型的屬性,把實體類數據存入Redis后變成這樣: 此時,存入redis不會報錯,但是從redis獲取的時候,會報錯: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Ca…

Springboot項目打包:將依賴的jar包輸出到指定目錄

場景 公司要對springboot項目依賴的jar包進行升級,但是遇到一個問題,項目打包之后,沒辦法看到他里面依賴的jar包,版本到底是不是升上去了,沒辦法看到。 下面是項目打的jar包 我們通過反編譯工具jdgui,來…

VUE3和VUE2

VUE3和VUE2 上一篇文章中,我們對VUE3進行了一個初步的認識了解,本篇文章我們來進一步學習一下,順便看一下VUE2的寫法VUE3是否能做到兼容😀。 一、新建組件 我們在components中新建一個組件,名稱為Peron,…

緩存降級

當Redis緩存出現問題或者無法正常工作時,需要有一種應對措施,避免直接訪問數據庫而導致整個系統癱瘓。緩存降級就是這樣一種機制。 主要的緩存降級策略包括: 本地緩存降級 當Redis緩存不可用時,可以先嘗試使用本地進程內緩存,如Guava Cache或Caffeine等。這樣可以減少對Redis…

陰影映射(線段樹)

實時陰影是電子游戲中最為重要的畫面效果之一。在計算機圖形學中,通常使用陰影映射方法來實現實時陰影。 游戲開發部正在開發一款 2D 游戲,同時希望能夠在 2D 游戲中模仿 3D 游戲的光影效果,請幫幫游戲開發部! 給定 x-y 平面上的…

再次學習History.scrollRestoration

再次學習History.scrollRestoration 之前在react.dev的源代碼中了解到了這個HIstory的屬性,當時寫了一篇筆記來記錄我對它的理解,現在看來還是一知半解。所以今天打算重新學習一下這個屬性,主要從屬性以及所屬對象的介紹、使用方法&#xff0…

每日一題(2)——100~200間的素數

方法一&#xff1a; public class suCount {public static void main(String[] args){int sum0;c1:for(int i100;i<200;i){for(int j2;j<i;j){if(i%j0)continue c1;//continue中斷循環&#xff0c;且返回外層循環&#xff0c;進入下一次遍歷else if(ji-1){System.out.pr…

Linux信號:信號的保存

目錄 一、信號在內核中的表示 二、sigset_t 2.1sigset_t的概念和意義 2.2信號集操作數 三、信號集操作數的使用 3.1sigprocmask 3.2sigpending 3.3sigemptyset 四、代碼演示 一、信號在內核中的表示 實際執行信號的處理動作稱為信號 遞達(Delivery) 。 信號從產生到遞達…

Mysql數據庫——DML操作

目錄 添加數據&#xff08;INSERT&#xff09; 修改數據&#xff08;UPDATE&#xff09; 刪除數據&#xff08;DELETE&#xff09; 添加數據&#xff1a; &#xff08;1). 給指定字段添加數據 &#xff08;2). 給全部字段添加數據 &#xff08;3). 批量添加數據 修改數據: 案例…

【STM32】HAL庫點燈

【STM32】HAL庫點燈 一、探究目標二、探究原理2.1 ST開發庫2.1.1 直接配置寄存器2.1.2 標準外設庫2.1.3 HAL庫2.2 HAL開發2.2.1 環境配置2.2.2 時鐘配置2.2.3 GPIO配置2.2.4 工程創建2.2.5 KEIL代碼![在這里插入圖片描述](https://img-blog.csdnimg.cn/direct/bf1c95d5c6724a6a…

NextGen Mirth Connect XStream反序列化遠程代碼執行漏洞(CVE-2023-43208)

0x01 產品簡介 NextGen Mirth Connect是是美國NextGen公司的一個醫療集成引擎,主要用于醫療領域的系統集成和數據交換,支持多種協議和標準。 0x02 漏洞概述 NextGen Mirth Connect 4.4.1之前版本存在遠程代碼執行漏洞,未經身份認證的攻擊者可利用該漏洞遠程執行代碼。 0…

混合組網VS傳統網絡:智能硬件混合組網優劣勢淺要解析

智能硬件混合組網是一種利用多種通信技術相結合的方法&#xff0c;以實現更靈活、更可靠的網絡連接。通過藍牙、Wi-Fi、LoRa、4G相互之間的不同通訊方式&#xff0c;根據應用場景的不同以及現場實際環境&#xff0c;優選最佳物聯網混合組網方案&#xff0c;以達到部署最便捷性價…