随着互联网的发展,系统的性能和响应速度越来越受到重视,为了提高系统的响应速度,我们可以使用缓存技术来减少对数据库的访问,Redis是一个高性能的开源内存数据库,它可以作为缓存层来提高系统的性能,本文将介绍如何在SSM项目中使用Redis缓存查询数据的方法。
环境准备
1、安装Redis:首先需要在服务器上安装Redis,具体安装方法可以参考官方文档:https://redis.io/download
2、引入Redis依赖:在项目的pom.xml文件中添加Redis相关依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>springbootstarterdataredis</artifactId> </dependency>
3、配置Redis:在application.properties文件中配置Redis连接信息:
spring.redis.host=localhost spring.redis.port=6379
创建Redis工具类
1、创建一个RedisUtil工具类,用于操作Redis:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; @Component public class RedisUtil { @Autowired private RedisTemplate<String, Object> redisTemplate; /** * 设置缓存 * @param key 键 * @param value 值 * @param time 时间(秒) */ public void set(String key, Object value, long time) { redisTemplate.opsForValue().set(key, value); redisTemplate.expire(key, time, TimeUnit.SECONDS); } /** * 获取缓存 * @param key 键 * @return 值 */ public Object get(String key) { return redisTemplate.opsForValue().get(key); } /** * 删除缓存 * @param key 键 */ public void delete(String key) { redisTemplate.delete(key); } }
在Service层使用Redis缓存查询数据
1、在需要使用缓存的Service方法中,先从Redis中获取数据,如果获取到数据则直接返回,否则从数据库中查询数据并将结果存入Redis,假设我们有一个UserService类,其中有一个根据用户ID查询用户信息的方法:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.*; import java.util.concurrent.*; import java.util.stream.*; import com.googlecode.aviator.*; import com.googlecode.aviator.runtime.*;//引入Aviator表达式引擎库,用于执行动态表达式语句,注意:这个库不是Spring Boot内置的,需要单独引入,可以在https://github.com/google/guavalibraries/tree/master/guava28.0jre/src/com/google/common/expr 下载jar包并添加到项目依赖中,也可以使用Maven或Gradle等构建工具引入,这里以Maven为例,在pom.xml文件中添加如下依赖: <br/> <dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviator</artifactId> <version>5.2</version> </dependency> <br/> <dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviatorjava6</artifactId> <version>5.2</version> </dependency> <br/> <dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviatorreflection</artifactId> <version>5.2</version> </dependency> <br/> <dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>aviatorlog4j</artifactId>
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/504926.html