概述
Redis通常用于存储缓存数据,如果在项目中加上一层缓存层,那么就意味着,客户端请求数据时先从redis中查找,如果redis中没有数据,那么从数据库中找,这就是redis在查询中的使用,而进行update、delete的时候,则要将redis中的数据清空,在改变数据库中的数据,因为如果不清除redis中的数据,那么就会出现,数据库中的数据已经改变或者被删除了,但你仍然查得到的情况。
大体步骤是:引入整合redis的jar包,在application中配置redis的Ip地址和端口号,使用RedisTemplate模板对redis进行操作
引入jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
完整pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>tensquare_parentPra</artifactId>
<groupId>com.itctest</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>tensquare_article</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.itctest</groupId>
<artifactId>tensquare_common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--简化代码的工具包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--mybatis-plus的springboot支持-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</project>
配置redis
spring:
application:
name: tensquare-base
datasource:
url: jdbc:mysql://192.168.126.129:3306/tensquare_article
username: root
password: root
redis:
host: 192.168.126.129
port: 6379
server:
port: 9004
servlet:
context-path: /tensquareArticle
logging:
level:
com.tensquare.article: debug
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
使用RedisTemplate对Redis进行操作
思路在概述中
@Service
public class TbArticleServiceImpl extends ServiceImpl<TbArticleMapper, TbArticle> implements ITbArticleService {
@Autowired
private TbArticleMapper tbArticleMapper;
@Autowired
private RedisTemplate redisTemplate;
public void deleteById(String id){
redisTemplate.delete(TbArticle.class.getSimpleName() + id);
tbArticleMapper.deleteById(id);
}
public TbArticle searchById(String id){
TbArticle article = (TbArticle) redisTemplate.opsForValue().get(TbArticle.class.getSimpleName() + id);
if (article==null){
article = tbArticleMapper.selectById(id);
redisTemplate.opsForValue().set(TbArticle.class.getSimpleName()+id,article,10, TimeUnit.SECONDS);
}
return article;
}
}