Spring Boot 为集成 Redis 提供了方便的启动器(Starter),在 Spring Boot 的自动配置中我们可以看到是通过 RedisCacheConfiguration 来进行配置的。
在项目中,只需要添加spring-boot-starter-data-redis
就可以集成使用 Redis 了。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
首先新建一个项目,选中Spring Data Redis(Access+Driver)
依赖。
然后在 Spring Test 类中注入StringRedisTemplate
模板类,添加一个测试方法,调用模板类对象操作 Redis。
package com.example.redis;
import static org.junit.jupiter.api.Assertions.assertEquals;
import javax.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
@SpringBootTest
class SpringBootRedisApplicationTests {
@Resource
private StringRedisTemplate strTemplate;
@Test
public void testRedis() {
strTemplate.opsForValue().set("name", "Kevin");
String name = strTemplate.opsForValue().get("name");
assertEquals("Kevin", name);
}
}
运行测试用例:
检查其是否通过测试,JUnit 测试,绿色条为测试通过。
在 Redis 命令行中检查 name 的值,是否为“Kevin”。
以上就是 Spring Boot 中集成 Redis 并使用模板类操作 Redis 的示例。
通过查阅 Spring Boot 源码,在RedisTemplate
这个类文件中可以非常清晰的看到其对 Reidis 不同的数据类型提供了不同的操作方法。
由于 Redis 中我们最经常操作的是数据类型是字符串类型的,所以 Spring Boot 专门扩展了一个字符串相关的模板类StringRedisTemplate extends RedisTemplate
。
下一节:在正常情况下,用户访问一个无状态的 http 请求,服务器为了记住这个用户,会在服务器端启动(这个session第一次访问服务器)/加载一个 session,并通过 session id 来保持用户端和服务器端的“状态”,比如该用户是否已经登录,是否已经分配了对应的角色,是否具有操作某些资源(菜单)的权限等。