maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
yml配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.88.128:3306/students?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT
username: root
password: 980902
redis:
host: 192.168.88.128
#服务器地址
port: 6379
#服务器端口
database: 1
# Redis数据库索引(默认为0) 密码之类的 默认是没有的可以写
logging:
level:
com.jianglin.demo_redis.dao: debug
# 打印SQL语句
实体类
@Data
public class Student implements Serializable {
private Integer id;
private String sname;
private String ssex;
private String sdateofbirth;
private String spwd;
}
mapper接口
public interface StudentMapper {
@Select("select * from student")
List<Student> findAll();
}
service接口
public interface StudentService {
List<Student> findAll();
}
实现类
@Service
public class StudentServiceImpl implements StudentService {
@Resource
private StudentMapper studentMapper;
@Autowired
private RedisTemplate redisTemplate;
@Override
public List<Student> findAll() {
String key = "student";
ListOperations<String, Student> operations = redisTemplate.opsForList();
// 缓存存在
boolean hasKey = redisTemplate.hasKey(key);
if (hasKey) {
return operations.range(key,0,-1);
}else{
List<Student> list = studentMapper.findAll();
System.out.println(list);
operations.leftPushAll(key, list);
return list;
}
}
}
redis配置
@Configuration
public class redisConfig {
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
//修改默认的序列化规则
//1.创建序列化规则对象
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer=new Jackson2JsonRedisSerializer(Object.class);
//2.更改默认的序列化规则
template.setDefaultSerializer(jackson2JsonRedisSerializer);
return template;
}
}
controller
@RestController
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/findAll")
public List<Student> findAll(){
return studentService.findAll();
}
}
下面调接口就行了