【十年后台管理系统】Redis的使用
一、序言
因为后续的验证码、权限等都会用到缓存,所以我们在创建项目后,先集成Redis为后续工作做铺垫。相信大家对Redis肯定是不陌生的,所以我们只做简单的介绍,就不多赘述。
二、依赖配置
2.1 引入依赖
引入依赖的方法跟SpringBoot2一样。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.2 配置文件
配置文件一定要注意,SpringBoot3的配置文件跟SpringBoot2是不一样的,在
spring后面还有一级data,配置时要注意
# SpringBoot3引入Redis
spring:data:redis:host: 127.0.0.1database: 3timeout: 10000# SpringBoot2引入Redis
spring:redis:host: 127.0.0.1database: 3timeout: 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);}@Autowiredpublic 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的使用绝不止简单的字符串存储,后面我们结合业务来增加使用场景,不然讲起来太空洞了,那也不是我们想要的。
专栏链接:其他文章
