一、序言
因为后续的验证码、权限等都会用到缓存,所以我们在创建项目后,先集成Redis为后续工作做铺垫。相信大家对Redis肯定是不陌生的,所以我们只做简单的介绍,就不多赘述。
二、依赖配置
2.1 引入依赖
引入依赖的方法跟SpringBoot2一样。
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
2.2 配置文件
配置文件一定要注意,SpringBoot3的配置文件跟SpringBoot2是不一样的,在spring后面还有一级data,配置时要注意
# SpringBoot3引入Redis
spring:
data:
redis:
host: 127.0.0.1
database: 3
timeout: 10000
# SpringBoot2引入Redis
spring:
redis:
host: 127.0.0.1
database: 3
timeout: 10000三、Redis工具类
这块我跟大部分人可能不太一样,大部分开发者喜欢使用RedisTemplate类,然后去做很多配置。但是我比较喜欢使用StringRedisTemplate,这个大家看个人喜好,我就是觉得RedisTemplate经常有人喜欢做类型转换,这种我个人不是很习惯。
另外,我比较懒,喜欢用静态工具类,所以我在写了一个静态的工具类,大家喜欢的可以直接使用。为了篇幅这里暂时就不全部写,大家可以参考源码:
这里工具类使用构造注入的方式引入StringRedisTemplate,才能在静态方法里使用。类上面的@Component注解也不能少,但是使用过程中,不要用bean注入的方式使用,直接使用静态方法即可。
@Component
public class RedisUtil {
private static StringRedisTemplate redisTemplate;
/**
* 缓存String
*
* @param key key
* @param value value
*/
public static void set(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
/**
* 缓存String(带有效期)
*
* @param key key
* @param value value
* @param timeout 有效期秒
*/
public static void set(String key, String value, long timeout) {
redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);
}
/**
* 获取String缓存
*
* @param key key
*/
public static String get(String key) {
return redisTemplate.opsForValue().get(key);
}
@Autowired
public RedisUtil(StringRedisTemplate redisTemplate) {
RedisUtil.redisTemplate = redisTemplate;
}
}四、测试工具类
没经过使用的工具类是没有意义的,下面我们就来对工具类进行测试,看看是否真的有效。
@RequestMapping("/test")
@RestController
public class TestController {
@GetMapping("/redis")
public void testRedis() {
RedisUtil.set("123:456:789", "正在进行Redis测试", 1800);
System.err.println("获取缓存数据:" + RedisUtil.get("123:456:789"));
}
}
然后我们通过浏览器调用:http://localhost:8080/test/redis
请添加图片描述
请添加图片描述
我们通过可视化工具可以看到,数据已经缓存到Redis中,控制台也能正常打印已缓存的数据。这里注意,我专门用中文进行测试的,取出的中文并没有乱码。
这里顺便推荐下我使用的Redis可视化工具RedisFront,我个人还是觉得不错的。
传送门:RedisFront
五、写在最后
Redis的使用绝不止简单的字符串存储,后面我们结合业务来增加使用场景,不然讲起来太空洞了,那也不是我们想要的。
管理系统文章合集