RedisTemplateAPI:String

文章目錄

  • ?1 String 介紹
  • ?2 命令
  • ?3 對應 RedisTemplate API
    • ???? 3.1 添加緩存
    • ???? 3.2 設置過期時間(單獨設置)
    • ???? 3.3 獲取緩存值
    • ???? 3.4 刪除key
    • ???? 3.5 順序遞增
    • ???? 3.6 順序遞減
  • ?4 以下是一些常用的API
  • ?5 應用場景


在這里插入圖片描述

在這里插入圖片描述


?1 String 介紹

String 類型,也就是字符串類型,是Redis中最簡單的存儲類型。

其value是字符串,不過根據字符串的格式不同,又可以分為3類:
string:普通字符串
int:整數類型,可以做自增.自減操作
float:浮點類型,可以做自增.自減操作

不管是哪種格式,底層都是字節數組形式存儲,只不過是編碼方式不同。字符串類型的最大空間不能超過 512 MB

KEYVALUE
namesnow
age20
salary600000.0

?2 命令

🍎🍎String的常見命令有🍎🍎:
SET:添加或者修改已經存在的一個 String 類型的鍵值對
GET:根據 key 獲取 String 類型的 value
MSET:批量添加多個String類型的鍵值對
MGET:根據多個 key 獲取多個 String 類型的 value
INCR:讓一個整型的key自增1
INCRBY:讓一個整型的 key 自增并指定步長,例如:incrby num 2 讓num值自增2
INCRBYFLOAT:讓一個浮點類型的數字自增并指定步長
SETNX:添加一個 String 類型的鍵值對,前提是這個 key 不存在,否則不執行
SETEX:添加一個 String 類型的鍵值對,并且指定有效期


?3 對應 RedisTemplate API

???? 3.1 添加緩存

//1、通過redisTemplate設置值
redisTemplate.boundValueOps("StringKey").set("StringValue");
redisTemplate.boundValueOps("StringKey").set("StringValue",1, TimeUnit.MINUTES);//2、通過BoundValueOperations設置值
BoundValueOperations stringKey = redisTemplate.boundValueOps("StringKey");
stringKey.set("StringVaule");
stringKey.set("StringValue",1, TimeUnit.MINUTES);//3、通過ValueOperations設置值
ValueOperations ops = redisTemplate.opsForValue();
ops.set("StringKey", "StringVaule");
ops.set("StringValue","StringVaule",1, TimeUnit.MINUTES);//4(SETNX + SETEX):這個key不存在執行 存在則不執行,多用于互斥鎖
ops.setIfAbsent("key", "value", 10, TimeUnit.SECONDS)

???? 3.2 設置過期時間(單獨設置)

redisTemplate.boundValueOps("StringKey").expire(1,TimeUnit.MINUTES);
redisTemplate.expire("StringKey",1,TimeUnit.MINUTES);

不建議使用單獨設置過期時間的API, 可以使用 3.1 中的第一個演示,在設置值的同時設置過期時間.

???? 3.3 獲取緩存值

//1、通過redisTemplate設置值
String str1 = (String) redisTemplate.boundValueOps("StringKey").get();//2、通過BoundValueOperations獲取值
BoundValueOperations stringKey = redisTemplate.boundValueOps("StringKey");
String str2 = (String) stringKey.get();//3、通過ValueOperations獲取值
ValueOperations ops = redisTemplate.opsForValue();
String str3 = (String) ops.get("StringKey");

???? 3.4 刪除key

Boolean result = redisTemplate.delete("StringKey");

???? 3.5 順序遞增

redisTemplate.boundValueOps("StringKey").increment(1L);

該API會返回遞增后的值. 如果KEY對應的值不存在會創建之并返回1

???? 3.6 順序遞減

redisTemplate.boundValueOps("StringKey").increment(-3L);

?4 以下是一些常用的API

ValueOperations ops = redisTemplate.opsForValue();//	單獨設置有效期(不推薦單獨用)
ops.expire("StringKey",1,TimeUnit.MINUTES);//	設置值 and 有效期(推薦這種)
ops.set("key", "value", 1, TimeUnit.MINUTES);//	操作數值 增加 減少(INCR INCRBY)
ops.increment("key", 1);
ops.increment("key", -1);//	(SETNX + SETEX):這個key不存在執行 存在則不執行,多用于互斥鎖
ops.setIfAbsent("key", "value", 10, TimeUnit.SECONDS)//	獲取緩存值
ops.get("StringKey");

?5 應用場景

下面列舉了一些Redis String類型的應用場景:

  • 緩存:使用String保存緩存信息,如用戶會話狀態、web頁面片段、數據庫查詢結果等。

  • 計數器:使用incr/decr命令實現對計數器的自增和自減,如網站訪問量、文件下載次數、商品銷售量等。

  • 消息隊列:使用LPUSH/RPUSH命令實現隊列的入隊(左插入)和出隊(右取出),同時使用BLPOP/BRPOP命令進行阻塞式彈出等待的消息。

  • id生成器:使用incr命令實現簡單id生成,解決分布式系統節點間數據生成的問題。

  • 分布式鎖:通過 SETNX 命令結合時間戳或隨機字符串等實現互斥鎖的獲取和釋放,避免并發寫操作時數據的不一致。

  • 商品價格:使用String保存商品價格,動態更新價格避免價格無法及時調整。

  • Session共享:將session信息以key-value方式保存到redis中并設置過期時間,完成session共享功能,類似于分布式緩存。


在這里插入圖片描述

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

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

相關文章

ue引擎游戲開發筆記(47)——設置狀態機解決跳躍問題

1.問題分析: 目前當角色起跳時,只是簡單的上下移動,空中仍然保持行走動作,并沒有設置跳躍動作,因此,給角色設置新的跳躍動作,并優化新的動作動畫。 2.操作實現: 1.實現跳躍不復雜&…

LabVIEW常用的電機控制算法有哪些?

LabVIEW常用的電機控制算法主要包括以下幾種: 1. PID控制(比例-積分-微分控制) 描述:PID控制是一種經典的控制算法,通過調節比例、積分和微分三個參數來控制電機速度和位置。應用:廣泛應用于直流電機、步…

Java中的繼承和多態

繼承 在現實世界中,狗和貓都是動物,這是因為他們都有動物的一些共有的特征。 在Java中,可以通過繼承的方式來讓對象擁有相同的屬性,并且可以簡化很多代碼 例如:動物都有的特征,有名字,有年齡…

Mybatis源碼剖析---第一講

Mybatis源碼剖析 基礎環境搭建 JDK8 Maven3.6.3&#xff08;別的版本也可以…&#xff09; MySQL 8.0.28 --> MySQL 8 Mybatis 3.4.6 準備jar&#xff0c;準備數據庫數據 把依賴導入pom.xml中 <properties><project.build.sourceEncoding>UTF-8</p…

Linux學習筆記:線程

Linux中的線程 什么是線程線程的使用原生線程庫創建線程線程的id線程退出等待線程join分離線程取消一個線程線程的局部存儲在c程序中使用線程使用c自己封裝一個簡易的線程庫 線程互斥(多線程)導致共享數據出錯的原因互斥鎖關鍵函數pthread_mutex_t :創建一個鎖pthread_mutex_in…

雷電預警監控系統:守護安全的重要防線

TH-LD1在自然界中&#xff0c;雷電是一種常見而強大的自然現象。它既有震撼人心的壯觀景象&#xff0c;又潛藏著巨大的安全風險。為了有效應對雷電帶來的威脅&#xff0c;雷電預警監控系統應運而生&#xff0c;成為現代社會中不可或缺的安全防護工具。 雷電預警監控系統的基本…

makefile 編寫規則

1.概念 1.1 什么是makefile Makefile 是一種文本文件&#xff0c;用于描述軟件項目的構建規則和依賴關系&#xff0c;通常用于自動化軟件構建過程。它包含了一系列規則和指令&#xff0c;告訴構建系統如何編譯和鏈接源代碼文件以生成最終的可執行文件、庫文件或者其他目標文件…

Node.js知識點以及案例總結

思考&#xff1a;為什么JavaScript可以在瀏覽器中被執行 每個瀏覽器都有JS解析引擎&#xff0c;不同的瀏覽器使用不同的JavaScript解析引擎&#xff0c;待執行的js代碼會在js解析引擎下執行 為什么JavaScript可以操作DOM和BOM 每個瀏覽器都內置了DOM、BOM這樣的API函數&#xf…

開源模型應用落地-食用指南-以最小成本博最大收獲

一、背景 時間飛逝&#xff0c;我首次撰寫的“開源大語言模型-實際應用落地”專欄已經完成了一半以上的內容。由衷感謝各位朋友的支持,希望這些內容能給正在學習的朋友們帶來一些幫助。 在這里&#xff0c;我想分享一下創作這個專欄的初心以及如何有效的&#xff0c;循序漸進的…

STM32F103C8T6 HC-SR04超聲波模塊——超聲波障礙物測距(HAl庫)

超聲波障礙物測距 一、HC-SR04超聲波模塊&#xff08;一&#xff09;什么是HC-SR04&#xff1f;&#xff08;二&#xff09;HC-SR04工作原理&#xff08;三&#xff09;如何使用HC-SR04&#xff08;四&#xff09;注意事項 二、程序編寫&#xff08;一&#xff09;CubeMX配置1.…

2024全新Langchain大模型AI應用與多智能體實戰開發

2024全新Langchain大模型AI應用與多智能體實戰開發 LangChain 就是一個 LLM 編程框架&#xff0c;你想開發一個基于 LLM 應用&#xff0c;需要什么組件它都有&#xff0c;直接使用就行&#xff1b;甚至針對常規的應用流程&#xff0c;它利用鏈(LangChain中Chain的由來)這個概念…

Facebook之魅:數字社交的體驗

在當今數字化時代&#xff0c;Facebook作為全球最大的社交平臺之一&#xff0c;承載著數十億用戶的社交需求和期待。它不僅僅是一個簡單的網站或應用程序&#xff0c;更是一個將世界各地的人們連接在一起的社交網絡&#xff0c;為用戶提供了豐富多彩、無與倫比的數字社交體驗。…

C++實現基礎二叉搜索樹(并不是AVL和紅黑樹)

本次實現的二叉搜索樹并不是AVL數和紅黑樹&#xff0c;只是了解流程和細節。 目錄 二叉搜索樹的概念K模型二叉搜索樹的實現二叉搜索樹的架構insert插入find 查找中序遍歷Inorder刪除earse替換法的思路情況一 &#xff1a;假如要刪除節點左邊是空的。在左邊時在右邊時 情況二&a…

文心智能體,零代碼構建情感表達大師智能體

前言 隨著智能體技術的突飛猛進&#xff0c;各行各業正迎來前所未有的變革與機遇。智能體&#xff0c;作為人工智能領域的重要分支&#xff0c;以其自主性、智能性和適應性&#xff0c;正逐步滲透到我們生活的每一個角落&#xff0c;成為推動社會進步和科技發展的新動力。 為了…

軟考 系統架構設計師系列知識點之雜項集萃(20)

接前一篇文章&#xff1a;軟考 系統架構設計師系列知識點之雜項集萃&#xff08;19&#xff09; 第28題 在單元測試中&#xff0c;&#xff08; &#xff09;。 A. 驅動模塊用來調用被測模塊&#xff0c;自頂向下的單元測試中不需要另外需要編寫驅動模塊 B. 樁模塊用來模擬被…

visual studio 2022 ssh 主機密鑰算法失敗問題解決

 Solution - aengusjiang 問題&#xff1a; I follow the document, then check sshd_config, uncomment“HostKey /etc/ssh/ssh_host_ecdsa_key” maybe need add the key algorithms: #HostKeyAlgorithms ssh-ed25519[Redacted][Redacted]rsa-sha2-256,rsa-sha2-512 Ho…

Redis常用命令——String篇

前面我們講解了一些 Redis 的全局命令&#xff08;Redis常用基本全局命令&#xff09;。所謂全局命令&#xff0c;就是可以匹配任意一個數據結構進行使用。但是不同的數據結構&#xff0c;也有自己的操作命令。本篇文章主要講解的是 String 的操作命令&#xff0c;希望會對你有…

ClickHouse課件

列式存儲數據庫&#xff1a;hbase clickhouse 簡介 ClickHouse入門 ClickHouse是俄羅斯的Yandex于2016年開源的列式存儲數據庫&#xff08;DBMS&#xff09;&#xff0c;使用C語言編寫&#xff0c;主要用于在線分析處理查詢&#xff08;OLAP&#xff09;&#xff0c;能夠使用…

2024年電工杯B題論文首發+問題一論文代碼分享

問題一論文代碼鏈接&#xff1a;https://pan.baidu.com/s/1kDV0DgSK3E4dv8Y6x7LExA 提取碼&#xff1a;sxjm --來自百度網盤超級會員V5的分享 基于數據分析的大學生平衡膳食食譜的優化設計及評價 摘要 大學時期不僅是學術學習和身體成長的關鍵階段&#xff0c;更是青年學生…

supermind讀寫自選股的功能來了

python custom_sector() # 返回所有板塊的dataframecustom_sector(板塊1) # 返回 板塊1 的屬性和股票custom_sector(板塊1, append, [000001.SZ]) # 增加板塊1的股票列表custom_sector(板塊1, pop, [000001.SZ]) # 移除板塊1的股票custom_sector(板塊1, remove) # 刪除板塊1zxg…