在SpringBoot项目中,往往会遇到使用Redis数据库的场景,SpringBoot提供了三种连接Redis的方式,首先是Redis官方自带的jedis,其次是SpringBoot自带的,最后是redisson,它是基于jedis优化的一种方式,性能最好,使用最多。本篇我们先讲解SpringBoot自带的连接Redis的方式。
首先我们要搭建一个SpringBoot项目,并下载安装好Redis。在pom.xml文件中,导入Redis的相关依赖。Maven会自动帮我们完成构建。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
之后,我们需要在application.properties
或application.yml
文件中配置Redis服务器的地址、端口、密码等。
# application.properties 示例
spring.redis.host=localhost
spring.redis.port=6379
# 如果Redis设置了密码
# spring.redis.password=password
最后在controller中注入即可。
@Resource
private RedisTemplate<String, String> redisTemplate;
我们可以使用基本语句来实现基础的增删改查操作。
@GetMapping("/test")
public String test() {
// 增
redisTemplate.opsForValue().set("abc", "123", 1, TimeUnit.HOURS);
// 查
String lpy = redisTemplate.opsForValue().get("abc");
System.out.println(abc); // 123
// 改
redisTemplate.opsForValue().set("abc", "456", 1, TimeUnit.HOURS);
lpy = redisTemplate.opsForValue().get("abc");
System.out.println(abc); // 456
// 删
redisTemplate.delete("abc");
lpy = redisTemplate.opsForValue().get("abc");
System.out.println(abc); // null
return "success";
}
我们可以使用Redis来完成项目中常用的防止频繁访问和阻止重复提交的功能。
// 用户近十秒内只能访问5次
@GetMapping("/test2")
public String test2(String id) {
Long increment = redisTemplate.opsForValue().increment(id, 1);
redisTemplate.expire(id, 10, TimeUnit.SECONDS);
if (increment > 5) {
return "你不能访问,近10秒访问次数是" + increment;
} else {
return "欢迎使用,访问次数是" + increment;
}
}