当前位置: 首页 > article >正文

StringRedisTemplete使用

StringRedisTemplate是Spring Data Redis提供的一个模板类,用于简化对Redis的操作。它特别适合处理字符串类型的数据,并且封装了一系列常用的Redis命令,使开发者能够以更简洁的方式进行Redis操作。本文将详细介绍 StringRedisTemplate的使用方法及其在实际项目中的应用。

一、StringRedisTemplate的配置

在Spring Boot项目中,可以通过以下步骤配置 StringRedisTemplate

1.1 添加依赖

在 pom.xml文件中添加Spring Data Redis的依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
1.2 配置Redis连接

在 application.yml或 application.properties中配置Redis连接信息:

spring:redis:host: localhostport: 6379
1.3 创建配置类

创建一个配置类来初始化 StringRedisTemplate

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;@Configuration
public class RedisConfig {@Beanpublic StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {return new StringRedisTemplate(redisConnectionFactory);}
}
二、StringRedisTemplate的基本使用
2.1 保存字符串数据

使用 StringRedisTemplate保存字符串数据:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;@Service
public class RedisService {@Autowiredprivate StringRedisTemplate stringRedisTemplate;public void saveString(String key, String value) {stringRedisTemplate.opsForValue().set(key, value);}
}

解释:

  • opsForValue():用于操作字符串类型的数据。
  • set(key, value):将指定的值与键关联。
2.2 获取字符串数据

从Redis中获取字符串数据:

public String getString(String key) {return stringRedisTemplate.opsForValue().get(key);
}

解释:

  • get(key):获取与键关联的值。
2.3 删除字符串数据

从Redis中删除字符串数据:

public void deleteString(String key) {stringRedisTemplate.delete(key);
}

解释:

  • delete(key):删除指定的键及其关联的值。
2.4 其他操作

StringRedisTemplate还支持其他常用操作,如自增、自减、设置过期时间等。

自增示例:

public void incrementString(String key) {stringRedisTemplate.opsForValue().increment(key);
}

设置过期时间示例:

import java.util.concurrent.TimeUnit;public void setStringWithExpire(String key, String value, long timeout, TimeUnit unit) {stringRedisTemplate.opsForValue().set(key, value, timeout, unit);
}
三、实际应用示例

假设我们在一个用户登录系统中,需要记录用户的登录状态。可以通过 StringRedisTemplate实现如下功能:

  1. 保存用户登录状态:用户登录成功后,将其状态保存到Redis中。
  2. 获取用户登录状态:检查用户是否已登录。
  3. 删除用户登录状态:用户登出后,从Redis中删除其登录状态。
3.1 实现代码
@Service
public class UserService {@Autowiredprivate StringRedisTemplate stringRedisTemplate;private static final String LOGIN_KEY_PREFIX = "user:login:";public void loginUser(String userId) {stringRedisTemplate.opsForValue().set(LOGIN_KEY_PREFIX + userId, "logged_in");}public boolean isUserLoggedIn(String userId) {String status = stringRedisTemplate.opsForValue().get(LOGIN_KEY_PREFIX + userId);return "logged_in".equals(status);}public void logoutUser(String userId) {stringRedisTemplate.delete(LOGIN_KEY_PREFIX + userId);}
}
3.2 测试代码
@SpringBootTest
public class UserServiceTest {@Autowiredprivate UserService userService;@Testpublic void testLoginAndLogout() {String userId = "12345";// 用户登录userService.loginUser(userId);assert userService.isUserLoggedIn(userId);// 用户登出userService.logoutUser(userId);assert !userService.isUserLoggedIn(userId);}
}

相关文章:

StringRedisTemplete使用

StringRedisTemplate是Spring Data Redis提供的一个模板类&#xff0c;用于简化对Redis的操作。它特别适合处理字符串类型的数据&#xff0c;并且封装了一系列常用的Redis命令&#xff0c;使开发者能够以更简洁的方式进行Redis操作。本文将详细介绍 StringRedisTemplate的使用方…...

SDC命令详解:使用set_min_capacitance命令进行约束

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 目录 指定最小需驱动电容值 指定对象列表/集合 简单使用 写在最后 set_min_capacitance命令用于设置输入端口的最小需驱动电容&#xff08;设置了输入端口的min_c…...

几何引擎对比:OpenCasCade、ACIS、Parasolid和CGM

概述 从技术架构与行业实践来看&#xff0c;OpenCasCade 凭借开源生态与轻量化设计形成差异化竞争力&#xff0c;尤其适合预算敏感、需定制开发或依赖开源工具链的场景&#xff1b;而 ACIS、Parasolid 等商业内核则通过工业级精度优化与主流 CAD 深度绑定占据大型企业市场&…...

OD 算法题 B卷【猴子吃桃】

文章目录 猴子吃桃 猴子吃桃 猴子喜欢吃桃&#xff0c;桃园有N棵桃树&#xff0c;第i棵桃树上有Ni个桃&#xff0c;看守将在H(>N)小时后回来&#xff1b;猴子可以决定吃桃的速度K(个/小时)&#xff0c;每个小时他会选择一棵桃树&#xff0c;从中吃掉K个桃&#xff0c;如果这…...

汽车安全体系:FuSa、SOTIF、Cybersecurity 从理论到实战

汽车安全&#xff1a;功能安全&#xff08;FuSa&#xff09;、预期功能安全&#xff08;SOTIF&#xff09;与网络安全(Cybersecurity) 从理论到实战的安全体系 引言&#xff1a;自动驾驶浪潮下的安全挑战 随着自动驾驶技术从L2向L4快速演进&#xff0c;汽车安全正从“机械可靠…...

Excel-vlookup -多条件匹配,返回指定列处的值

前提&#xff1a;先了解vlookup 的简单使用&#xff0c; 参照&#xff1a;https://blog.csdn.net/yanweijie0317/article/details/144886106?spm1011.2124.3001.6209 要求&#xff1a;按照Sheet0的B列和I列&#xff0c;在Sheet1中查找H列。 函数&#xff1a; VLOOKUP(B509&a…...

Python异步爬虫与代理完美结合

为了编写一个高性能的异步爬虫&#xff0c;并使用代理IP&#xff0c;我们可以使用以下技术栈&#xff1a;aiohttp &#xff08;用于异步HTTP请求&#xff09;、asyncio &#xff08;用于异步编程&#xff09;、代理IP可以使用一个代理池&#xff0c;我们从文件中读取或者从API获…...

惠普HP Deskjet 9600 打印机信息

基本参数 产品定位&#xff1a;彩色喷墨打印机。打印速度&#xff1a;14 页 / 分钟。最高分辨率&#xff1a;48001200dpi。打印内存&#xff1a;8MB4。打印语言&#xff1a;HP PCL 3 增强型。打印负荷&#xff1a;每月 5000 页。接口类型&#xff1a;USB、并口。 功能特点 自动…...

Hive的Parquet格式优化方法

一、Parquet格式的特点与优势 1. 列式存储架构 核心特点:数据按列存储,同一列的数据连续存储在文件中,而非行式存储的“整行连续存储”。优势: 查询性能高:仅读取查询所需列的数据,减少I/O量(如SELECT name FROM table仅扫描name列)。压缩效率高:同一列数据类型一致,…...

ADI硬件笔试面试题型解析下

本专栏预计更新60期左右。当前第17期-ADI硬件. ADI其硬件工程师岗位的招聘流程通常包括笔试和多轮技术面试,考察领域涵盖模拟电路设计、数字电路、半导体器件和信号处理等。 本文通过分析平台上的信息,汇总了ADI硬件工程师的典型笔试和面试题型,并提供详细解析和备考建议,…...

服务器租用:高防CDN和加速CDN的区别

CDN全称为内容分发网络&#xff0c;其主要的作用原理能够加快网站的数据传输的速度&#xff0c;随着技术的快速发展&#xff0c;CDN也分为高防CDN和加速CDN两种不同的类型&#xff0c;本文将为大家介绍一下高防CDN和加速CDN两者之间的区别有哪些&#xff1f; 高防CDN能够有效抵…...

吃透 Golang 基础:数据结构之 Map

文章目录 Map概述初始化删除访问不存在的 key 返回 value 的零值遍历 mapmap 自身的零值map 索引时返回的第二个参数使用 map 实现 set Map Hash Map 是无序的 key/value 对集合&#xff0c;其中所有的 key 都是不同的。通过给定的 key 可以在常数时间复杂度内完成检索、更新或…...

ABP VNext 与 Neo4j:构建基于图数据库的高效关系查询

ABP VNext 与 Neo4j&#xff1a;构建基于图数据库的高效关系查询 &#x1f680; 在社交网络、权限图谱、推荐系统等应用场景中&#xff0c;关系链深度和复杂度远超传统关系型数据库的表达能力。本文基于 ABP VNext 框架&#xff0c;集成 Neo4j 图数据库&#xff0c;构建一套高…...

数论——同余问题全家桶3 __int128和同余方程组

数论——同余问题全家桶3 __int128和同余方程组 快速读写和__int128快速读写__int128 中国剩余定理和线性同余方程组中国剩余定理(CRT)中国剩余定理OJ示例模板题曹冲养猪 - 洛谷模板题猜数字 - 洛谷 扩展中国剩余定理扩展中国剩余定理OJ示例模板题扩展中国剩余定理&#xff08;…...

leetcode47.全排列II:HashSet层去重与used数组枝去重的双重保障

一、题目深度解析与重复排列问题 题目描述 给定一个可能包含重复数字的数组nums&#xff0c;返回其所有不重复的全排列。解集不能包含重复的排列&#xff0c;且排列可以按任意顺序返回。例如&#xff1a; 输入&#xff1a;nums [1,1,2]输出&#xff1a;[[1,1,2],[1,2,1],[2…...

5.Nginx+Tomcat负载均衡群集

Tomcat服务器应用场景&#xff1a;tomcat服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP程序的首选。一般来说&#xff0c;Tomcat虽然和Apache或…...

React项目的状态管理:Redux Toolkit

目录 1、搭建环境 2、Redux Toolkit 包含了什么 3、使用示例 &#xff08;1&#xff09;创建user切片 &#xff08;2&#xff09;合并切片得到store &#xff08;3&#xff09;配置store和使用store 使用js来编写代码&#xff0c;方便理解一些 1、搭建环境 首先&#xf…...

跨界破局者鲁力:用思辨与创新重塑汽车流通行业标杆

来源&#xff1a;投资家 在汽车流通行业深度变革的浪潮中&#xff0c;东莞东风南方汽车销售服务有限公司塘厦分公司总经理鲁力历经近二十年行业深耕&#xff0c;构建了一条从汽车销售顾问到区域运营掌舵者的进阶范本。作为东风日产体系内兼具理论建构与实战穿透力的标杆管理者…...

Druid连接池实现自定义数据库密码加解密功能详解

Druid连接池实现自定义数据库密码加解密功能详解 在企业级应用开发中&#xff0c;数据库密码的明文存储是一个显著的安全隐患。Druid作为阿里巴巴开源的高性能数据库连接池组件&#xff0c;提供了灵活的密码加密与解密功能&#xff0c;允许开发者通过自定义逻辑实现数据库密码…...

OS11.【Linux】vim文本编辑器

目录 1.四种模式 命令模式 几个命令 插入模式 底行模式 一图展示三种模式之间的关系 2.分屏(多文件操作) 3.配置vim的原理 4.脚本一键配置vim CentOS 7 x86_64 其他发行版 5.NeoVim(推荐) vim文本编辑器是一个多模式的编辑器,因此先介绍它的四种模式 附vim的官网:…...

基于SFC的windows系统损坏修复程序

前言 在平时使用Windows操作系统时会遇到很多因为系统文件损坏而出现的错误 例如:系统应用无法打开 系统窗口(例如开始菜单)无法使用 电脑蓝屏或者卡死 是如果想要修复很多人只能想到重装系统。但其实Windows有一个内置的系统文件检查器可以修复此类错误。 原理 SFC命令…...

强化学习基础概念图文版笔记

&#x1f4d8; 强化学习基础概念图文版笔记 1️⃣ 基本框架&#xff1a;Agent 与 Environment &#x1f9e0; 核心角色&#xff1a; Agent&#xff08;智能体&#xff09;&#xff1a;做出决策的“大脑”&#xff0c;根据当前状态选择动作。Environment&#xff08;环境&…...

k8s下离线搭建elasticsearch

前提 已经完成k8s安装 已经完成相关组件如helm的安装 下载es的chart包 如下地址 https://helm.elastic.co/helm/elasticsearch/elasticsearch-版本号.tgz 如6.8.10 https://helm.elastic.co/helm/elasticsearch/elasticsearch-6.8.10.tgz 修改配置 修改value.yaml文件…...

WAF绕过,网络层面后门分析,Windows/linux/数据库提权实验

一、WAF绕过文件上传漏洞 win7&#xff1a;10.0.0.168 思路&#xff1a;要想要绕过WAF&#xff0c;第一步是要根据上传的内容找出来被拦截的原因。对于文件上传有三个可以考虑的点&#xff1a;文件后缀名&#xff0c;文件内容&#xff0c;文件类型。 第二步是根据找出来的拦截原…...

Oracle杀进程注意事项

文章目录 一、哪些后台进程杀死会导致数据库重启二、杀死哪些后台进程会导致数据库关闭三、杀死哪些后台进程对数据库没有影响 一、哪些后台进程杀死会导致数据库重启 CKPT&#xff1a;检查点进程&#xff0c;checkpoint 检查点&#xff0c;检查点事件的责任是&#xff1a;标志…...

Vue 3 弹出式计算器组件(源码 + 教程)

&#x1f9ee; Vue 3 弹出式计算器组件&#xff08;源码 教程&#xff09; &#x1f4cc; 建议收藏 点赞 关注&#xff0c;本组件支持加减乘除、双向绑定、计算过程展示&#xff0c;适用于表单辅助输入场景。 &#x1f527; 一、完整源码&#xff08;复制即用&#xff09; …...

监测预警系统重塑隧道安全新范式

在崇山峻岭的脉络间延伸的隧道&#xff0c;曾是交通安全的薄弱环节。智慧隧道监测预警系统的诞生&#xff0c;正在彻底改变这种被动防御格局&#xff0c;通过数字神经网络的构建&#xff0c;为地下交通动脉注入智能守护基因。 一、安全防控体系的质变升级 1.风险感知维度革命…...

solidity中sar和>>的区别

sar和>>都是右移操作&#xff0c;其区别简而言之前者保留符号位&#xff0c;后者不保留。要解释清楚这个问题&#xff0c;需要从有符号数和无符号数讲起: 有符号数和无符号数 打个比方int8和uint8 uint8&#xff08;无符号 8 位整数&#xff09; 取值范围&#xff1a;…...

ESP32与STM32

ESP32与STM32深度对比&#xff1a;物联网与嵌入式开发的王者之争 一、核心架构对比 1.1 ESP32 - 无线物联网霸主 // 典型双核架构配置 #include "freertos/FreeRTOS.h" #include "freertos/task.h"void app_main() {// 核心0执行无线通信任务xTaskCreat…...

vue在打包的时候能不能固定assets里的js和css文件名称

在 Vue 项目中&#xff08;特别是使用 Vue CLI 构建的项目&#xff09;&#xff0c;打包时生成的 assets 目录下的 .js 和 .css 文件默认会带有哈希值&#xff08;如 app.123abc.js&#xff09;&#xff0c;这是为了缓存优化。但你可以配置固定名称&#xff0c;方法如下&#x…...