此处提供IDEA-SpringBoot-总目录链接,可查看整个项目过程其他步骤文章:点击此处跳转至总目录链接
此处提供IDEA-SpringBoot-总目录链接,可查看整个项目过程其他步骤文章:点击此处跳转至总目录链接
此处提供IDEA-SpringBoot-总目录链接,可查看整个项目过程其他步骤文章:点击此处跳转至总目录链接
十三、SpringBoot-集成Redis
使用Generator反向生成代码可参考前一篇博客 点此跳转
pom.xml
<!-- 加载 spring boot redis 包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
FmError
为实现将数据保存在Redis缓存中,需要将model类实现序列化,其余和之前博客一致,其中serialVersionUID 是自动生成,在类名上按Alt + Enter添加,如果没有提示,则按图片进行设置
public class FmError implements Serializable {
private static final long serialVersionUID = 3604769453211758197L;
private String errorCode;
private String errorMessage;
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getErrorMessage() {
return errorMessage;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
}
RedisController
@RestController // 控制层注解,相当于所有方法都相当于添加了 @ResponseBody 注解
public class RedisController {
@Autowired
FmErrorService fmErrorService;
@RequestMapping(value = "/show")
public Object show(){
FmError fmError = fmErrorService.qryMessage("000001");
return fmError;
}
}
FmErrorServiceImpl
@Service
public class FmErrorServiceImpl implements FmErrorService {
@Autowired
FmErrorMapper fmErrorMapper;
@Autowired
RedisTemplate<Object, Object> redisTemplate;
@Override
public FmError qryMessage(String id) {
// 设置 redisTemplate 对象 key 的序列化方式
redisTemplate.setKeySerializer(new StringRedisSerializer());
// 从 redis 缓存中获取信息
FmError fmError = (FmError) redisTemplate.opsForValue().get("fmError");
// 判断是否为空
if(null == fmError){
// 去数据库查询取值,并放到Redis缓存中
fmError = fmErrorMapper.selectByPrimaryKey(id);
redisTemplate.opsForValue().set("fmError",fmError,10, TimeUnit.SECONDS);
System.out.println("缓存没有此数据,去数据库查询");
}else{
System.out.println("缓存存在此数据,不去数据库查询");
}
return fmError;
}
}
application.properties
#配置 redis 连接信息
spring.redis.host=127.0.0.1
spring.redis.port=6380
spring.redis.password=
多次进行请求访问时,可以在控制台日志中看到设定的时间内,都是从Redis中获取了数据,并没有多次与数据库进行交互