SpringBoot依赖之Spring Data Redis一集合Set

embedded/2024/11/14 22:04:53/

概念

Spring Data Redis (Access+Driver)
  • 依赖名称: Spring Data Redis (Access+Driver)
  • 功能描述: Advanced and thread-safe Java Redis client for synchronous, asynchronous, and reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs and much more.
  • 中文释义:用于同步、异步和反应式使用的高级且线程安全的 Java Redis 客户端。支持集群、哨兵、管道、自动重新连接、编解码器等。

项目学习代码地址

操作演示:

在IDEA中创建项目过程可以参考上一篇:
SpringBoot依赖之Spring Data Redis 一 String类型

Spring Boot 项目中使用 Spring Data Redis 实现集合(Set)

接下来我们演示在 Spring Boot 项目中使用 Spring Data Redis 实现集合(Set)操作,我们可以在之前的项目代码基础上扩展 Redis 服务类和控制器类,以支持对 Redis 列表的常见操作。以下是具体的实现步骤。

为了在 Spring Boot 项目中使用 Spring Data Redis 实现集合(Set)操作,我们可以在之前的项目代码基础上扩展 Redis 服务类和控制器类,以支持对 Redis 列表的常见操作。以下是具体的实现步骤。

1. 更新 Redis 服务类

RedisService 类中添加列表相关的方法。

package com.dependencies.springdataredis;import org.springframework.data.redis.core.*;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class RedisService {private final RedisTemplate<String, Object> redisTemplate;private final SetOperations<String, Object> setOperations;public RedisService(RedisTemplate<String, Object> redisTemplate) {this.redisTemplate = redisTemplate;this.setOperations = redisTemplate.opsForSet();}// Set操作public void addToSet(String key, String value) {setOperations.add(key, value);}public Set<Object> getSetMembers(String key) {return setOperations.members(key);}public boolean isMemberOfSet(String key, String value) {return setOperations.isMember(key, value);}public void removeFromSet(String key, String value) {setOperations.remove(key, value);}
}
2. 更新控制器类

RedisController 中添加处理列表操作的端点。

package com.dependencies.springdataredis;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author zhizhou   2024/8/17 12:02*/
@RestController
public class RedisController {private final RedisService redisService;public RedisController(RedisService redisService) {this.redisService = redisService;}// Set操作@GetMapping("/set/add")public String addToSet(@RequestParam String key, @RequestParam String value) {redisService.addToSet(key, value);return "值已加入集合set";}@GetMapping("/set/members")public Set<Object> getSetMembers(@RequestParam String key) {return redisService.getSetMembers(key);}@GetMapping("/set/ismember")public boolean isMemberOfSet(@RequestParam String key, @RequestParam String value) {return redisService.isMemberOfSet(key, value);}@GetMapping("/set/remove")public String removeFromSet(@RequestParam String key, @RequestParam String value) {redisService.removeFromSet(key, value);return "值已从集合set移除";}
}
3. 验证测试set相关操作

我们启动项目以后,就通过以下的额 URL 测试 Redis 列表的功能:

Set 操作:

  • 添加成员到集合: http://localhost:8080/set/add?key=oneSet&value=一周一志程序员
  • 获取集合中的所有成员: http://localhost:8080/set/members?key=oneSet
  • 检查成员是否在集合中: http://localhost:8080/set/ismember?key=oneSet&value=一周一志程序员
  • 删除集合中的成员: http://localhost:8080/set/remove?key=oneSet&value=一周一志程序员
4. 总结

​ 通过上述步骤,我们成功在 Spring Boot 项目中使用 Spring Data Redis 实现了对 Redis 集合(set)类型的操作。您可以使用这些方法来处理去重、关系运算、多标签、多用户社交网络关系的数据结构需求。

​ 这是基本的集合set相关操作,还是要结合具体的业务选择具体的存储类型,这样对于项目后期的迭代具有事半功倍的效果。所以项目前期的技术选型也很重要,不容忽视。可以关注我一起学习,一起为程序员职业生涯蓄能。


http://www.ppmy.cn/embedded/97291.html

相关文章

iOS(OC)学习第2天-绑定UI和点击事件

之前我们学会了设置UI&#xff0c;但是UI组件没有绑定点击事件,不能交互 第一步-设置静态操作页面 页面上共6个UI组件&#xff1a;三个UILabel ,两个 UITextField &#xff0c;一个UIButton 第二步-定义变量和方法 //ViewController.h #import <UIKit/UIKit.h>interfac…

【接口测试】Postman + newman超详细图文安装教程

一、Postman安装 下载网址&#xff1a;Postman API Platform 打开网址&#xff0c;选择自己系统对应的版本进行下载。 双击Postman安装包&#xff0c;全自动安装&#xff0c;不需要任何人为干预。安装完成后&#xff0c;页面如下图&#xff0c;点击手动打开注册页面。 根据…

[云计算] 导论学习笔记

原著: 韩冰,云计算课程, 有删改。 云计算架构 应用服务平台基础设施物理架构 MVC 三层架构 强耦合 垂直拆分:不同业务 水平拆分:大表 拆 小表 SOA 架构 弱耦合 消息队列 云计算特征 按需自助,无处不在,与位置无关的资源池,快速弹性,按使用付费 5 个特征 资源池 存…

Mapreduce_partition分区入门

分区 将输入的csv按照员工号拆分成每个员工&#xff0c;每个员工存储为员工对象&#xff0c;之后按每个员工的不同部门存储 pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:x…

Datawhale X 魔搭 AI夏令营第四期 | AIGC文生图——进阶上分 实战优化 Task3笔记

Hi&#xff0c;大家好&#xff0c;我是半亩花海。在上一个任务中&#xff0c;我们逐行精读baseline&#xff0c;掌握了利用AI工具提升学习效率&#xff0c;并制作了话剧连环画&#xff0c;初步了解Secpter WebUI。今天&#xff0c;我们将深入探讨微调的基本原理及其参数&#x…

SAR靶机笔记

SAR 靶机笔记 概述 SAR 是 Vulnhub 上的靶机&#xff0c;大家可以去 vulnhub 网站上去进行下载。 这里有链接&#xff1a; https://download.vulnhub.com/sar/sar.zip 一丶常规的 nmap 扫描 1&#xff09;主机发现 sn 只做 ping 扫描&#xff0c;不做端口扫描 nmap -sn …

Python基础知识学习总结(一)

一. 简介 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性&#xff0c;相比其他语言经常使用英文关键字&#xff0c;其他语言的一些标点符号&#xff0c;它具有比其他语言更有特色语法结构。 Python 是一种解释型语…

深度学习入门(E):逻辑回归与分类到底是啥关系?

逻辑回归与一般分类任务的区别 逻辑回归 本质上是回归&#xff1a;它实际上是一个回归模型&#xff0c;用于预测一个概率值&#xff08;即事件发生的概率&#xff09;。输出范围&#xff1a;逻辑回归的输出通过sigmoid函数限制在0和1之间&#xff0c;这表示了一个概率。应用场…