背景:我需要用 springboot 建一个测试 redis 集群连通性的 demo
废话不多说直接上代码:
1.pom
xml
</dependency>
<!-- Spring Boot Starter Data Redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- Jedis Client for cluster support -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
2.配置
yaml
spring:
application:
name: demo
redis:
cluster:
nodes:
- 10.228.48.28:26379,10.228.48.19:26379,
- 10.228.48.21:26379,10.228.48.28:26380,
- 10.228.48.19:26380,10.228.48.21:26380
password: 0666AAcuSl_VLC8e
timeout: 10000
jedis:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 0
3.建一个 config 类
java
package com.example.demo.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
/**
* @author wangjn
* @Description
* @createTime 2024-06-13 10:44:00
*/
@Service
public class RedisClusterService {
@Autowired
private RedisTemplate<String, String> redisTemplate;
public void setValue(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
public String getValue(String key) {
return redisTemplate.opsForValue().get(key);
}
}
4.controller
java
package com.example.demo;
import com.example.demo.config.RedisClusterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author wangjn
* @Description
* @createTime 2024-06-13 10:49:00
*/
@RestController
public class RedisController {
@Autowired
private RedisClusterService redisClusterService;
// 设置Redis键值对
@PostMapping("/redis/set/{key}")
public String setValue(@PathVariable("key") String key, @RequestBody String value) {
redisClusterService.setValue(key, value);
return "Value set successfully for key: " + key;
}
// 获取Redis中的值
@GetMapping("/redis/get/{key}")
public String getValue(@PathVariable("key") String key) {
return redisClusterService.getValue(key);
}
}