- yml配置
spring:
redis:
# Redis数据库索引(默认为0)
database: 0
# Redis服务器地址
host: 192.168.85.128
# Redis服务器连接端口
port: 6379
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
password: root
username: root
server:
port: 8080
mybatis:
configuration:
auto-mapping-behavior: FULL
mapper-locations: classpath:mapper/*.xml
- 逻辑处理
package com.example.springboot_redis.service;
import com.example.springboot_redis.bean.Faqs;
import com.example.springboot_redis.mapper.FaqsMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@RequiredArgsConstructor
public class FaqsService {
private final FaqsMapper mapper;
private final RedisTemplate redisTemplate;
public List<Faqs> selectAll() {
String key="faqs";//设置键名
ListOperations<String,Faqs> list = redisTemplate.opsForList();
Boolean bool=redisTemplate.hasKey(key);//判断是否存在该键名
if (bool){
return list.range(key,0,-1);//如果存在直接从缓存查询返回集合
}else {
List<Faqs> faqsList = mapper.selectAll();
System.out.println(faqsList);
list.leftPushAll(key,faqsList);//如果不存在将设置好的key键值和查询数据库的结果放入
return faqsList;//既然都查出来了就直接返回咯
}
}
}
- 序列化设置
package com.example.springboot_redis.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import java.net.UnknownHostException;
@Configuration
public class Config {
@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;
}
}
4.控制层直接调就行了,不要多说了