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