Spring中如何操作Redis

Spring畢竟是Java中的一個主流框架,如何在這個框架中使用Redis呢?

創建項目并引入相關依賴

然后進行創建。

至此就將Redis的相關依賴引入進來了。

編寫Redis配置

將application.properties修改成application.yml

然后編寫如下配置:

spring:redis:host: 127.0.0.1port: 8888

編寫代碼

與Jedis不同的是,在Spring中需要通過StringRedisTemplate這個類來進行操作。

并且在這個類中會發現,沒有與命令行對應的API。

原因如下:

為了對API進行分類,將每個類型的操作進行了封裝,分到了其他類中。

方法功能
opsForValue封裝了String類型的API
opsForHash封裝了Hash類型的API
opsForList封裝了List類型的API
opsForSet封裝了Set類型的API
opsForZset

封裝了Zset類型的API

@SpringBootTest
class SpringRedisTestApplicationTests {@AutowiredStringRedisTemplate redisTemplate;@Testvoid test01(){redisTemplate.opsForValue().set("key1", "value1");String s = redisTemplate.opsForValue().get("key1");Assertions.assertEquals("value1", s);}
}

如果要想執行flushAll呢?我們會發現根本找不到這樣的API

難不成是出于安全的原因進行的考慮嗎?當然不是,因為來年ping這種命令也沒有封裝。

那該怎么操作呢?當然在設計之初也進行了保留。

通過execute方法執行回調,即可實現原生指令的操作~

在RedisConnection中會發現,這個類繼承一堆的類,這些類中就提供了基本指令的操作。

也可將每個RedisConnection簡單理解為Jedis對象,也表示的是一個連接。

通過觀察源碼,會發現,這個回調函數必須要有返回值,而這個返回值也會作為execute的返回值。

@SpringBootTest
class SpringRedisTestApplicationTests {@AutowiredStringRedisTemplate redisTemplate;@Testvoid test01(){redisTemplate.execute((RedisConnection connection) -> {connection.flushAll();return null;});redisTemplate.opsForValue().set("key1", "value1");String s = redisTemplate.opsForValue().get("key1");Assertions.assertEquals("value1", s);}
}

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

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

相關文章

usbserver工程師手記(二)設置定時任務

概述 部分銀行ukey 長時間不使用后會導致休眠,出現雖然有連接,但是讀不到證書,可以用定時重置端口的辦法,調用接口 http://ip/usb_server/reset_port,參數為 {"port":"B5-1-2","vid_pid":"09…

Golang | Leetcode Golang題解之第228題匯總區間

題目&#xff1a; 題解&#xff1a; func summaryRanges(nums []int) (ans []string) {for i, n : 0, len(nums); i < n; {left : ifor i; i < n && nums[i-1]1 nums[i]; i {}s : strconv.Itoa(nums[left])if left < i-1 {s "->" strconv.It…

多個標簽頁中復用同一 QTableView

在 PyQt 中實現在多個標簽頁中復用同一個 QTableView 實例&#xff0c;復用同一個 QTableView 實例可以減少內存和資源的使用。每個 QTableView 實例都會消耗一定的內存和處理資源&#xff0c;如果每個標簽頁都創建一個新的實例&#xff0c;會增加系統的負擔。通過復用實例&…

每天一個數據分析題(四百二十一)- 一元線性回歸模型

關于一元線性回歸的求解過程說法正確的是&#xff1f; A.一元線性回歸只需要求解出兩個參數系數即可 B.對于新來的樣例&#xff0c;建立好的一元線性回歸模型可以做出準確的預測 C.一元線性回歸模型的基本形式是YAxe&#xff0c;其中A為系數&#xff0c;e為隨機誤差 D.一元線性…

日常學習-20240710

1、一次一千萬條數據插入和刪除案例&#xff1a; 第一次&#xff1a;插入--批量插入&#xff0c;每次插入5000條數據&#xff0c;總耗時28min,數據無異常 刪除--通過sql語句一次性刪除&#xff0c;總耗時1h52min;一次刪除的數據過多導致mysql的備份恢復文件極其龐大&#xff0…

CentOS7 安裝 git 命令

通過yum源install下載的git版本比較低&#xff0c;不推薦此方式安裝。 官網下載最新版git源碼&#xff1a;Git 1. 解壓安裝包 tar -xzvf git-2.45.2.tar.gz 2. 安裝相關依賴 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils…

uniapp使用高德地圖(公眾號+h5)

選擇微信小程序的話后果就是你的地圖出不來&#xff0c;出來了就報key異常 下面直接放配置和代碼&#xff1a; 打包后的高德uni-app,uniCloud,serverless,高德地圖,申請高德地圖Key,配置使用高德地圖,參數說明,高德開放平臺用戶名,百度地圖,申請百度地圖Key,配置使用百度地圖,…

線性代數|機器學習-P22逐步最小化一個函數

文章目錄 1. 概述2. 泰勒公式3. 雅可比矩陣4. 經典牛頓法4.1 經典牛頓法理論4.2 牛頓迭代法解求方程根4.3 牛頓迭代法解求方程根 Python 5. 梯度下降和經典牛頓法5.1 線搜索方法5.2 經典牛頓法 6. 凸優化問題6.1 約束問題6.1 凸集組合 Mit麻省理工教授視頻如下&#xff1a;逐步…

bert訓練的一些技巧(rand() < self.skipgram_prb)

rand() < self.skip_gram_prb) 是一個條件表達式&#xff0c;用來判斷是否進行skip-gram掩碼操作。這種掩碼操作通常用于自然語言處理中的數據增強&#xff0c;通過概率決定是否應用skip-gram掩碼。下面是對這個表達式的詳細解釋&#xff1a; 解釋 rand(): rand() 是一個隨…

uniapp 初始學習1

uni-app代碼基本包括js,vue,css.在app端支持原生渲染nvue&#xff0c;可編譯的kotlin和swift 掌握js就可以進行不同應用的開發 頁面文件遵循 Vue 單文件組件 (SFC) 規范&#xff0c;即每個頁面是一個.vue文件 .vue文件是一個自定義的文件類型&#xff0c;用類HTML語法描述一…

SpringBoot使用RedisTemplate、StringRedisTemplate操作Redis

前言 RedisTemplate 是 Spring Boot 訪問 Redis 的核心組件&#xff0c;底層通過 RedisConnectionFactory 對多種 Redis 驅動進行集成&#xff0c;上層通過 XXXOperations 提供豐富的 API &#xff0c;并結合 Spring4 基于泛型的 bean 注入&#xff0c;極大的提供了便利&#x…

深度學習和NLP中的注意力和記憶

深度學習和NLP中的注意力和記憶 文章目錄 一、說明二、注意力解決了什么問題&#xff1f;#三、關注的代價#四、機器翻譯之外的關注#五、注意力&#xff08;模糊&#xff09;記憶&#xff1f;# 一、說明 深度學習的最新趨勢是注意力機制。在一次采訪中&#xff0c;現任 OpenAI 研…

使用 python 構建企業級高可用海量爬蟲調度系統

一、引言 在大數據時代&#xff0c;信息的獲取與分析成為了企業決策的重要依據。對于營銷行業而言&#xff0c;實時抓取和分析競爭對手動態、市場趨勢以及用戶反饋等數據&#xff0c;是制定有效策略的關鍵。然而&#xff0c;構建一個高可用的、能夠處理海量數據的爬蟲調度系統…

K8S中部署 Nacos 集群

1. 準備 GitK8Skubectlhelm 咱也沒想到 K8S 部署系列能搞這么多次&#xff0c;我一個開發天天干運維的活&#xff0c;前端后端運維測試工程師實至名歸。 2. 方案選擇 https://github.com/nacos-group/nacos-k8s 我替你們看了一下&#xff0c;有好幾種方式能部署&#xff…

華為機考真題 -- 求字符串中所有整數

題目描述&#xff1a; 輸入字符串s&#xff0c;輸出s中包含所有整數的最小和。 說明&#xff1a;字符串s&#xff0c;只包含 a-z A-Z &#xff1b; 合法的整數包括&#xff1a; 1&#xff09; 正整數 一個或者多個0-9組成&#xff0c;如 0 2 3 002 102 2&#xff09;負整數…

【RHCE】基于用戶認證和TLS加密的HTTP服務(HTTPS)

目錄 一、創建用戶賬號 二、TLS加密 三、配置http服務子配置文件 四、創建訪問http服務的文件夾以及輸入重定向到文件 五、配置Linux本地倉庫以及Windows下的本地倉庫 六、基礎操作 七、測試 一、創建用戶賬號 用戶認證 # 創建兩個賬戶 [rootlocalhost ~]# htpasswd -…

交叉熵損失函數的使用目的(很膚淺的理解)

第一種使用方法 import torch from torch import nn # Example of target with class indices loss nn.CrossEntropyLoss() input torch.randn(3, 5, requires_gradTrue) target torch.empty(3, dtypetorch.long).random_(5) output loss(input, target) output.backward(…

可控學習綜述:信息檢索中的方法、應用和挑戰

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

10. 啤酒和飲料

啤酒和飲料 題目描述 本題為填空題&#xff0c;只需要算出結果后&#xff0c;在代碼中使用輸出語句將所填結果輸出即可。 啤酒每罐 2.32.3 元&#xff0c;飲料每罐 1.91.9 元。小明買了若干啤酒和飲料&#xff0c;一共花了 82.382.3 元。 我們還知道他買的啤酒比飲料的數量…

js逆向第24例:FastMoss數據分析網站Fm-Sign加密字段破解

文章目錄 一、前言二、定位關鍵參數三、代碼實現一、前言 破解:FastMoss數據分析網站Fm-Sign加密字段 二、定位關鍵參數 先看一下網站加密字段是長什么樣,如下圖,老手估計一下子就能發現字段Fm-Sign:的密文類似md5加密后的結果。 直接全局搜索Fm-Sign:看來key也沒有做混…