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

RedisTemplate类中的常用方法粗解(简单明了,预计5分钟看完)

在阅读项目代码过程中发现引用RedisTemplate 的方法操作redis时,都会有一些特定的ops ,对此好奇就查资料的情况下有了本博客。
操作之前付一张我们项目中的用到的地方的图

在这里插入图片描述

另外本文中的语言用到的是Java,附上试验用到的redisTemplete依赖

 <!--redis-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.5.2</version>
</dependency>

查阅资料后总结如下:

1. 基本操作

opsForValue()

作用:获取 ValueOperations 对象,用于操作字符串类型的数据。(这里的方法只是一级方法,我们项目中还采用到了redisTemplate.opsForValue().setIfAbsent()用于实现和RedisService中的redisService.setNx(key, value)同样的效果)
示例:

    ValueOperations<String, String> valueOps = redisTemplate.opsForValue();valueOps.set("key", "value");
opsForHash()

作用:获取 HashOperations 对象,用于操作哈希类型的数据。
示例:

    HashOperations<String, String, String> hashOps = redisTemplate.opsForHash();hashOps.put("hashKey", "field", "value");
opsForList()

作用:获取 ListOperations 对象,用于操作列表类型的数据。
示例:

    ListOperations<String, String> listOps = redisTemplate.opsForList();listOps.rightPush("listKey", "value");
opsForSet()

作用:获取 SetOperations 对象,用于操作集合类型的数据。
示例:

    SetOperations<String, String> setOps = redisTemplate.opsForSet();setOps.add("setKey", "value");
opsForZSet()

作用:获取 ZSetOperations 对象,用于操作有序集合类型的数据。
示例:

    ZSetOperations<String, String> zSetOps = redisTemplate.opsForZSet();zSetOps.add("zSetKey", "value", 1.0);

ps:看到这里才明白,大量的ops实际上是因为operations这个单词的缩写…

除了一些基础的操作外还有一些对键的操作,对事务的操作,请继续往下看

2. 键操作

delete(K key)

作用:删除指定的键。
示例:

    redisTemplate.delete("key");
expire(K key, long timeout, TimeUnit unit)

作用:为指定的键设置过期时间。(这里我们项目中使用到了,用于设置特定数据的过期时间)
示例:

  redisTemplate.expire("key", 60, TimeUnit.SECONDS);
hasKey(K key)

作用:检查指定的键是否存在。
示例:

    boolean exists = redisTemplate.hasKey("key");

事务操作

multi()

作用:开始一个事务。
示例:

 redisTemplate.multi();
exec()

作用:提交事务。
示例:

    List<Object> results = redisTemplate.exec();
discard()

作用:放弃事务。
示例:

redisTemplate.discard();

4.其他操作

boundValueOps(K key)

作用:获取一个绑定到指定键的 BoundValueOperations 对象,用于操作字符串类型的数据。
示例:

BoundValueOperations<String, String> boundValueOps = redisTemplate.boundValueOps("key");
boundValueOps.set("value");
boundHashOps(K key)

作用:获取一个绑定到指定键的 BoundHashOperations 对象,用于操作哈希类型的数据。
示例:

BoundHashOperations<String, String, String> boundHashOps = redisTemplate.boundHashOps("hashKey");
boundHashOps.put("field", "value");
boundListOps(K key)

作用:获取一个绑定到指定键的 BoundListOperations 对象,用于操作列表类型的数据。
示例:

BoundListOperations<String, String> boundListOps = redisTemplate.boundListOps("listKey");
boundListOps.rightPush("value");
boundSetOps(K key)

作用:获取一个绑定到指定键的 BoundSetOperations 对象,用于操作集合类型的数据。
示例:

BoundSetOperations<String, String> boundSetOps = redisTemplate.boundSetOps("setKey");
boundSetOps.add("value");
boundZSetOps(K key)

作用:获取一个绑定到指定键的 BoundZSetOperations 对象,用于操作有序集合类型的数据。
示例:

 BoundZSetOperations<String, String> boundZSetOps = redisTemplate.boundZSetOps("zSetKey");boundZSetOps.add("value", 1.0);

总体来讲,RedisTemplate 类提供了丰富的操作方法,涵盖了 Redis 的各种数据类型和操作。很多细节性质的方法还是需要通过不断的去实践才能熟练运用。

相关文章:

RedisTemplate类中的常用方法粗解(简单明了,预计5分钟看完)

在阅读项目代码过程中发现引用RedisTemplate 的方法操作redis时&#xff0c;都会有一些特定的ops &#xff0c;对此好奇就查资料的情况下有了本博客。 操作之前付一张我们项目中的用到的地方的图 另外本文中的语言用到的是Java&#xff0c;附上试验用到的redisTemplete依赖 <…...

鸿蒙ArkTS中的布局容器组件(Column、Row、Flex、 Stack、Grid)

在鸿蒙ArkTS中&#xff0c;布局容器组件有很多&#xff0c;常见的有&#xff1a;   ⑴ Column&#xff1a;&#xff08;垂直布局容器&#xff09;&#xff1a;用于将子组件垂直排列。   ⑵ Row&#xff1a;&#xff08;水平布局容器&#xff09;&#xff1a;用于将子组件水…...

显存占用 显存测试

目录 显存测试 显存占用示例 一个模型多卡占用 显存测试 import torch# 计算张量的大小&#xff08;例如&#xff1a;每个 float 占用 4 字节&#xff09; # 40GB 40 * 1024 * 1024 * 1024 字节 # 每个 float 4 字节&#xff0c;因此需要的 float 数量为 (40 * 1024 * 1024…...

快速入门CSS

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗 如有错误&#xff0c;欢迎指出~ 目录 CSS css的三种引入方式 css书写规范 选择器分类 标签选择器 class选择器 id选择器 复合选择器 通配符选择器 color颜色设置 border边框设置 width/heigth 内/外边距 C…...

AcWing 1073 树的中心 树形dp (详解)

这道题目非常有新意&#xff0c;在过去&#xff0c;我们通常先访问子节点去更新父节点的状态&#xff0c;但是这道题我们还需要从父节点去更新子节点。 我们可以想象为向上和向下两个方向&#xff0c;我们任取一点&#xff0c;先向下走&#xff0c;再回来更新上面的点&#xf…...

modelscope下载Qwen2.5 72B 模型方法

conda create -n modelscope python=3.10 conda activate modelscopepip install modelscope执行这个python代码: from modelscope.hub.snapshot_download import snapshot_download# 下载模型到当前路径 model_dir = snapshot_download(...

重学SpringBoot3-整合 Elasticsearch 8.x (二)使用Repository

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 整合 Elasticsearch 8.x &#xff08;二&#xff09;使用Repository 1. 环境准备1.1 项目依赖1.2 Elasticsearch 配置 2. 使用Repository的基本步骤2.1 创建实体类2.2 创…...

为什么说模拟电路的难点就在开通过程和关断过程?难在什么地方?

模拟电路中开通过程和关断过程之所以困难&#xff0c;主要有以下几个方面的原因&#xff1a; 1. 瞬态响应特性复杂 - 在开通和关断瞬间&#xff0c;电路中的电流和电压会发生快速变化&#xff0c;产生复杂的瞬态响应。这些瞬态响应可能包含过冲、下冲、振铃等现象&#xff0c;…...

CubeIDE BUG-project‘hello‘has no explict encoding set hello

projecthellohas no explict encoding set hello 解决方法&#xff1a; 点击红色处注册账号后登录&#xff0c;删除原本文件后重新生成即可。...

在线PDF转图片网站

https://www.ilovepdf.com/download/qgxkmbzgxt6yb3s8l9f7fc3q9606hq0bfh4b33mnrf3p7tp8l0d4qy386b5dxqwjbhq7j3j4tp20m4dnb89wA9jjw25br1gtAw42l0m1sq047nvld4qqrm8kzjplkAhw9458p4wjgbmn08g49l23c1khsggdx4A7z3m9xh19mgzdlllyA6r1/52 在线excel转图片 https://www.zamzar.c…...

ps和top的区别

时间上的区别&#xff1a; ps是静态查看进程而top是动态持续监控进程 功能上的区别 ps只是查看进程,top还可以监视系统性能,如平均负载,cpu和内存的消耗 ps 常用格式&#xff1a;ps -ef &#xff08;ef简洁aux详细 System &#xff36;风格和BSD 风格&#xff09; | grep P…...

自动驾驶上市潮中,会诞生下一个“英伟达”吗?

站上科技创新潮头的企业总是备受资本青睐。20世纪开始&#xff0c;从IT到互联网&#xff0c;IBM、英特尔、微软、苹果等各大科技巨头&#xff0c;你方唱罢我登场。 近几年&#xff0c;人工智能成为资本市场新传奇故事的孕育之地。今年10月&#xff0c;英伟达市值首度突破3.5万…...

CSS 计数器:深入解析与高级应用

CSS 计数器&#xff1a;深入解析与高级应用 CSS 计数器是前端开发中一个强大但经常被忽视的功能。它们允许开发者创建和管理自定义的计数序列&#xff0c;这在处理复杂文档结构时尤其有用。本文将深入探讨 CSS 计数器的原理、用法&#xff0c;并展示一些高级应用示例。 什么是…...

【真题笔记】15年系统架构设计师要点总结

【真题笔记】15年系统架构设计师要点总结 分布式数据库中各种透明RAID 5IPv6 IPv4电子商务系统项目配置管理IPO图&#xff08;输入加工输出图&#xff09;桥接模式的UML图面向对象设计原则软件测试 在15年真题练习中&#xff0c;对错题模棱两可的考点进行重点记录与内容延申。…...

斗破C++编程入门系列之三十九:多态性:纯虚函数和抽象类(四星斗师)

斗破C目录&#xff1a; 斗破C编程入门系列之前言&#xff08;斗之气三段&#xff09; 斗破C编程入门系列之二&#xff1a;Qt的使用介绍&#xff08;斗之气三段&#xff09; 斗破C编程入门系列之三&#xff1a;数据结构&#xff08;斗之气三段&#xff09; 斗破C编程入门系列之…...

目前美国的互联网环境

随着科技的迅猛发展&#xff0c;互联网已经成为了现代社会不可或缺的一部分。作为全球科技创新的领导者之一&#xff0c;美国在互联网领域拥有着丰富的资源和先进的技术。本文将对美国目前的互联网环境进行探讨&#xff0c;包括网络基础设施、网络安全、数字经济以及互联网对社…...

从最小作用量原理推导牛顿三大定律

从最小作用量原理推导牛顿三大定律 引言 在物理学中&#xff0c;牛顿三大定律是描述经典力学中物体运动的基本定律。然而&#xff0c;这些定律并不是孤立存在的&#xff0c;它们可以从一个更为普遍的原理——最小作用量原理中推导出来。最小作用量原理是一个深刻而优雅的理论…...

【系统集成项目管理工程师教程】第4章 信息系统架构

教程内容总结&#xff0c;供参考&#xff0c;有错误请指正&#xff0c;友好交流。 4.架构基础 4.1.1指导思想 4.1.2设计原则 原则内容&#xff1a;包括坚持以人为本、创新引领、问题导向、整体协同、安全可控、科学实施等&#xff0c;这些原则应基于组织的信念和价值观&…...

docker下迁移elasticsearch的问题与解决方案

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 docker下迁移elasticsearch的问题与解决方案 数据挂载报错解决权限问题节点故障 直接上图&#x…...

占地1.1万平,2亿投资的智能仓储系统:高架库、AGV、码垛机器人……

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 我国调味料市场近年来展现出惊人的增长潜力&#xff0c;各大品牌纷纷加大投入&#xff0c;力求在竞争中脱颖而出。 广东美味鲜调味食品有限公司&#xff0c;作为行业内的佼佼者&#…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析

LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...