添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>
redis配置
##redis配置
###默认redis数据库为db0
spring.redis.database=0
##服务器地址,默认为localhost
spring.redis.host=localhost
##连接端口,默认为6379
spring.redis.port=6379
##reis密码,默认为空
spring.redis.password=
创建类
实体类
@Entity
//声明此对象映射到数据库的数据表,该注释不是必须的,如果没有则使用系统的默认值
@Table(appliesTo = "ay_user")
public class AyUser implements Serializable {
@Id //指定表的主键
private String id;
private String name;
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "AyUser{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
``
### service层
service接口
```java
public interface AyUserService {
AyUser findById(String id);
}
service实现类
@Transactional
@Service
public class AyUserServiceImpl implements AyUserService {
@Autowired
private AyUserRepository ayUserRepository;
@Resource
private RedisTemplate redisTemplate;
private static String ALL_USER = "ALL_USER_LIST";
@Override
public AyUser findById(String id) {
//查询redsi缓存中的数据
List<AyUser> ayUserList = redisTemplate.opsForList().range(ALL_USER, 0, -1);
if (ayUserList != null && ayUserList.size() > 0) {
for (AyUser ayUser : ayUserList) {
if (ayUser.getId().equals(id)) {
System.out.println("缓存查找");
return ayUser;
}
}
}
//查询数据库中的数据
AyUser ayUser = ayUserRepository.findById(id).get();
if (ayUser != null) {
System.out.println("数据库查找");
//将数据插入到缓存redis中
redisTemplate.opsForList().leftPush(ALL_USER, ayUser);
}
return ayUser;
}
}
数据访问(dao)层
由于这里使用的SpringDataJPA,所以不需要写任何代码,SpringDataJPA会帮我们实现功能。
public interface AyUserRepository extends JpaRepository<AyUser,String> {
}
测试
在默认生成的测试类中添加以下代码。
@Resource
private RedisTemplate redisTemplate;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Resource
private AyUserService ayUserService;
@Test
public void testFindById() {
AyUser ayUser = ayUserService.findById("1");
System.out.println("user:" + ayUser);
System.out.println("user:" + ayUserService.findById("1"));
}
结果
第一次查询是从数据库中查询,查询到结果以后会把结果缓存在redis数据库中,第二次直接从缓存中读取数据。

本文介绍如何在Spring Boot项目中集成Redis作为缓存,包括依赖添加、配置、实体类定义、Service层实现及数据访问层设置,并通过测试验证缓存功能。
349

被折叠的 条评论
为什么被折叠?



