黑馬點評練習題-給店鋪類型查詢業務添加緩存(String和List實現)

目錄

一、前言

二、需求

三、String實現

四、List實現


一、前言

這是黑馬點評實戰篇-商戶查詢緩存-0.3緩存練習題分析,練習給店鋪類型查詢業務添加緩存。這里我自己是通過String實現的,當然在網上查詢也能夠找到其他的實現方式。String實現我會展示自己寫的代碼(算簡單一點但是嚴格按照之前查詢店鋪緩存的來),List實現我會轉載我認為其他大佬寫的比較好的(實現起來會復雜一點)

二、需求

修改ShopTypeController中的queryTypeList方法,添加查詢緩存

三、String實現

將ShopTypeController改為如下圖所示:

在IShopTypeList中創建queryTypeList并加上注釋

進入實現類中實現queryTypeList方法(核心就是完成這個實現方法)

整個實現方法完成的效果如下圖:(記得注入StringRedisTemplate,在常量類中加上CACHE_SHOP_TYPE_KEY)

整個實現方法的參考代碼如下:

@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {@Resourceprivate StringRedisTemplate stringRedisTemplate;/*** 查詢所有商鋪類型*/public Result queryTypeList() {//用String實現,opsForValue寫法//public static final String CACHE_SHOP_TYPE_KEY = "cache:shopType:";String key = CACHE_SHOP_TYPE_KEY;//1.從redis查詢商鋪類型緩存String shopTypeJson = stringRedisTemplate.opsForValue().get(key);//2.判斷是否存在if (StrUtil.isNotBlank(shopTypeJson)){//3.存在,直接返回List<ShopType> shopTypeList = JSONUtil.toList(shopTypeJson, ShopType.class);return Result.ok(shopTypeList);}//4.不存在,查詢數據庫  MybatisPlus的query()拿來用List<ShopType> shopTypeList = query().orderByAsc("sort").list();//5.數據庫中不存在,返回錯誤信息if (shopTypeList == null){return Result.fail("商鋪類型不存在!");}//6.數據庫中存在,寫入redisString jsonStr = JSONUtil.toJsonStr(shopTypeList);stringRedisTemplate.opsForValue().set(key, jsonStr);//7.返回return Result.ok(shopTypeList);}
}

啟動服務測試觀察DataGrip效果如下:

四、List實現

這里我轉載其他大佬的博客,大家自行了解

【黑馬點評】實戰篇-作業-店鋪類型緩存-List實現_黑馬點評作業-CSDN博客

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

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

相關文章

深度學習 pytorch圖像分類(詳細版)

目錄 一、項目簡介 二、模型訓練驗證保存 三、模型測試保存csv文件 四、單張圖片預測 五、模型評估 六、ONNX導出 七、ONNX推理 八、網絡結構與數據增強可視化 上篇我介紹了具體步驟&#xff0c;今天就以我實際開發的一個具體項目來講&#xff1a; 一、項目簡介 苯人的…

《AR眼鏡上聲學的應用與挑戰》

《2025GAS聲學大講堂—音頻產業創新技術公益講座》智能眼鏡專題講座第3講將于7月24日周四19點開講&#xff0c;本次邀請了 珠海莫界科技有限公司 高級算法工程師 胡立天 演講&#xff0c;講座主題&#xff1a;《AR眼鏡上聲學的應用與挑戰》&#xff08;點擊觀看直播&#xff09…

編譯支持cuda硬件加速的ffmpeg

本來以為很簡單&#xff0c;因為印象中自己在windows機器上使用過。 目前的實在一個docker環境下的ubuntu系統里。 官方操作文檔 按照官方操作文檔Using FFmpeg with NVIDIA GPU Hardware Acceleration - NVIDIA Docs的描述&#xff0c;步驟很簡單&#xff1a; 1、安裝nv-c…

在資源受限單片機中使用printf等可變參函數時的陷阱(2025年7月22日)

今天分享一個我最近在項目調試中遇到的“大坑”&#xff0c;這個坑來自一個我們既熟悉又依賴的朋友——printf函數。故事的主角&#xff0c;是一顆資源極其有限的STM32F030單片機&#xff0c;它只有區區4KB的RAM。 一切始于便利 項目初期&#xff0c;為了能方便地監控程序運行狀…

大數據之Hive:Hive中week相關的幾個函數

目錄1.dayofweek函數2.weekday函數3.weekofyear函數1.dayofweek函數 功能&#xff1a;統計某天為星期幾 dayofweek(date) - Returns the day of the week for date/timestamp (1 Sunday, 2 Monday, ..., 7 Saturday).dayofweek返回值為&#xff1a;1-7&#xff0c;1 星期…

基于深度學習Transform的steam游戲特征分析與可視化【詞云-情感詞典分析-主題分析-詞頻分析-關聯分析】

文章目錄有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主一、項目背景與研究意義二、研究目標三、研究方法與實施流程第一階段&#xff1a;數據采集與預處理第二階段&#xff1a;多維度數據分析第三階段&#xff1a;綜合分析與策略建議輸出四、預期…

Qwen3-8B 與 ChatGPT-4o Mini 的 TTFT 性能對比與底層原理詳解

一、模型概述與上下文支持能力 1.1 Qwen3-8B 的技術特點 Qwen3-8B 是通義實驗室推出的 80 億參數大語言模型&#xff0c;支持 32,768 token 的上下文長度 。其核心優化點包括&#xff1a; FP8 量化技術&#xff1a;通過將權重從 32-bit 壓縮至 8-bit&#xff0c;顯著降低顯存…

recvmsg函數的用法

recvmsg 是 Linux 網絡編程中用于接收消息的高級系統調用&#xff0c;支持復雜數據結構和輔助數據的接收&#xff0c;適用于 TCP/UDP/UNIX 域套接字等場景?。以下是其核心用法詳解&#xff1a;?1. 函數原型與參數?#include <sys/socket.h> ssize_t recvmsg(int sockfd…

24GSPS高速DA FMC子卡

單通道 16bit 12GSPS/ 12bit 15.5GSPS/ 8bit 24GSPS雙通道 16bit 6.2GSPS/ 12bit 7.75GSPS/ 8bit 12GS/sDAC FMC子卡基于TI公司的高速DAC數模轉換器DAC39RF12ACK和時鐘芯片LMX2594而設計的標準單槽位的FMC子卡。支持單通道模式或雙通道模式&#xff0c;單通道模式下提供16bit 1…

LabVIEW動態調用VI

該組LabVIEW程序演示4 種動態調用 VI 的實現方案&#xff0c;圍繞 HTTP GET 任務&#xff08;通過 URL 抓取數據&#xff09;&#xff0c;利用不同調用邏輯&#xff0c;適配多場景下的并行 / 串行執行需求&#xff0c;助力工程師靈活構建異步、并行化程序。各方案說明&#xff…

安裝單機版本Redis

部署操作:步驟一: 安裝Redis服務# 安裝redis操作 dnf install redis -y步驟二&#xff1a; 修改Redis相關配置vim /etc/redis/redis.conf # 83行附件&#xff0c; 修改為 * -::* 任意的服務都可以連接redis服務 bind * -::*#908行附近&#xff1a; 打開requirepass&#xff…

Java(Set接口和HashSet的分析)

Set 接口基本介紹:注意:取出的順序的順序雖然不是添加的順序&#xff0c;但是他的固定set接口的常用方法:和 List 接口一樣, Set 接口也是 Collection 的子接口&#xff0c;因此&#xff0c;常用方法和 Collection 接口一樣.set的遍歷方式:HashSet的全面說明:HashSet的暢通方法…

vscode不識別vsix結尾的插件怎么解決?

當VS Code無法識別.vsix文件時&#xff0c;可能是由于文件損壞、版本不兼容或安裝流程不正確導致的。以下是解決此問題的詳細步驟&#xff1a; 1. 確認文件完整性 重新下載.vsix文件&#xff1a;刪除現有文件&#xff0c;從可靠來源重新下載&#xff0c;確保下載過程未中斷。檢…

面試題:sql題一

SELECTp.product_id, -- 產品IDp.product_name, -- 產品名稱SUM(s.sale_qty * s.unit_price) AS sum_price, -- 年銷售總價YEAR(s.sale_date) AS year_date -- 銷售年份 FROM products p JOIN sales s ON p.product_id s.produ…

【React-Three-Fiber實踐】放棄Shader!用頂點顏色實現高性能3D可視化

在現代前端開發中&#xff0c;3D可視化已經成為提升用戶體驗的重要手段。然而&#xff0c;許多開發者在實現復雜視覺效果時&#xff0c;往往會首先想到使用Shader&#xff08;著色器&#xff09;。雖然Shader功能強大&#xff0c;但學習曲線陡峭&#xff0c;實現復雜度高。本文…

MSTP技術

一、STP/RSTP 的局限性STP&#xff08;生成樹協議&#xff09;和 RSTP&#xff08;快速生成樹協議&#xff09;存在一些明顯的局限&#xff0c;主要包括&#xff1a;所有 VLAN 共享一顆生成樹&#xff0c;這導致無法實現不同 VLAN 在多條 Trunk 鏈路上的負載分擔。例如&#xf…

[IMX][UBoot] 16.Linux 內核移植

目錄 1.修改 Makefile 2.新增配置文件 3.新增設備樹文件 4.新建編譯腳本 5.修改 CPU 頻率 6.EMMC 適配 7.網絡驅動適配 1.修改 Makefile 修改頂層 Makefile 中的架構信息 ARCH 和交叉編譯器 CROSS_COMPILE&#xff0c;修改后不需要在執行 make 時手動指定這兩個變量的值…

數據庫 × 緩存雙寫策略深度剖析:一致性如何保障?

前言 緩存&#xff0c;幾乎是現在互聯網項目中最常見的一種加速工具了。 通過緩存&#xff0c;我們能大幅提升接口響應速度&#xff0c;減少數據庫的訪問壓力&#xff0c;還能支撐各種復雜的業務功能&#xff0c;比如排行榜、風控系統、黑名單校驗等等。 不管你用的是本地緩存…

主流Java Redis客戶端深度對比:Jedis、Lettuce與Redisson性能特性全解析

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 持續學習&#xff0c;不斷…

AI問答系統完整架構規劃文檔

?? 目錄 現有代碼架構分析 AI核心組件缺口分析 完整技術架構設計 開發路線圖 技術實現要點 ??? 現有代碼架構分析 當前項目結構 ai問答/ ├── main.py # FastAPI服務入口,API路由 ├── model.py # 基礎LLM模型加載與推理 ├── rag.py …