1.导入redis依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
2.在application.yml中添加如下配置
redis:
database: 7
host: localhost
password: admin
port: 6379
timeout: 10s
lettuce:
pool:
max-active: 18
min-idle: 16
max-wait: 5s
max-idle: 0
3.在控制类中编写 string 类型的代码
@RestController
@RequestMapping("/api/redis")
public class RedisController {
@Resource
private StringRedisTemplate stringRedisTemplate;//Redis-->string
//可以操作所有数据类型
@Resource
private RedisTemplate<String,Object> redisTemplate;
@GetMapping("setString")
public CommonResult setString(String key,String value,long timeout){
stringRedisTemplate.opsForValue().set("user:"+key,value,timeout, TimeUnit.SECONDS);
return CommonResult.success("将数据成功添加到Redis中");
}
@GetMapping("getString")
public CommonResult getString(String key){
key = "user:"+key;
String value = stringRedisTemplate.opsForValue().get(key);
return CommonResult.success("获取成功",value);
}
}
4.控制 list 类型的代码
@GetMapping("/redis/setList")
public String setList() {
String key = "list";
List<String> values = Arrays.asList("Redis", "Java", "Python");
redisTemplate.opsForList().rightPushAll(key, values);
return "set success";
}
@GetMapping("/redis/getList")
public List<String> getList() {
String key = "list";
List<String> values = redisTemplate.opsForList().range(key, 0, -1);
return values;
}
5.控制 hash 类型的代码
@GetMapping("/redis/setHash")
public String setHash() {
String key = "user";
stringRedisTemplate.opsForHash().put(key, "name", "Redis");
stringRedisTemplate.opsForHash().put(key, "age", "18");
return "set success";
}
@GetMapping("/redis/getHash")
public Map<String, String> getHash() {
String key = "user";
Map<String, String> result = stringRedisTemplate.opsForHash().entries(key);
return result;
}
6.控制 set 类型的代码
@GetMapping("/redis/setSet")
public String setSet() {
String key = "set";
stringRedisTemplate.opsForSet().add(key, "Redis", "Java", "Python");
return "set success";
}
@GetMapping("/redis/getSet")
public Set<String> getSet() {
String key = "set";
Set<String> result = stringRedisTemplate.opsForSet().members(key);
return result;
}
7.控制 SortedSet 类型的代码
@GetMapping("/redis/setSortedSet")
public String setSortedSet() {
String key = "sortedSet";
Set<ZSetOperations.TypedTuple<String>> values = new HashSet<>();
values.add(new DefaultTypedTuple<>("Redis", 1D));
values.add(new DefaultTypedTuple<>("Java", 2D));
values.add(new DefaultTypedTuple<>("Python", 3D));
stringRedisTemplate.opsForZSet().add(key, values);
return "set success";
}
@GetMapping("/redis/getSortedSet")
public Set<String> getSortedSet() {
String key = "sortedSet";
Set<String> result = stringRedisTemplate.opsForZSet().range(key, 0, -1);
return result;
}
Redis 是一个非常优秀的内存数据结构存储系统,具有高可用性、高性能、持久化和支持多种数据结构等特点,在大数据领域得到了广泛应用。同时,使用 SpringBoot 也可以快速地实现 Redis 的使用,并且 StringRedisTemplate 提供了丰富的 API,可以方便地操作 Redis 中的数据。各个数据类型的实现需要根据具体业务场景而定,可以根据需要自由地选择数据结构和使用方式。