Springboot整合Redis简单应用
依赖:
org.springframework.boot
spring-boot-starter-data-redis
application配置文件:
# redis配置 # 指定redis的主机地址 spring.redis.host=192.168.159.128 // 这个是redis的运行主机地址,本机配置的就是本机地址,虚拟机配置的就是虚拟机地址 #logging.level.com.example.demo_crud.mapper=debug #debug=true # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.jedis.pool.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.jedis.pool.max-wait=-1ms # 连接池中的最大空闲连接 spring.redis.jedis.pool.max-idle=8 # 连接池中的最小空闲连接 spring.redis.jedis.pool.min-idle=0 # 连接超时时间(毫秒) spring.redis.timeout=5000 # Redis数据库索引(默认为0) spring.redis.database=0
新建RedisConfig配置文件进行redis序列化配置:
/**
* @Author: L
* @Date: 2022/3/30 13:26
* @Description: *
*/
@Configuration
public class RedisConfig {
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
//初始化一个RedisCacheWriter
RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);
//设置CacheManager的值序列化方式为json序列化
RedisSerializer
对比较常用的数据查询操作增加redis缓存:
// getall 获取所有商品数据 public ListgetAll() { // 将返回商品数组转换为jsonString String goodsliststring = JSON.toJSONString(goodsMapper.getAll()); // 岁redis数据库进行KV操作 ValueOperations valueops = redisTemplate.opsForValue(); // 将所有商品数据放入缓存 valueops.set(goodsListKey,goodsliststring); // 获取redis数据库中的数据 String goodsListJson = valueops.get(goodsListKey); // 判断redis中是否有数据,如果有数据直接在redis中拿,没有则去数据库查询 if(!StringUtils.isEmpty(goodsListJson)){ return goodsMapper.getAll(); } return goodsMapper.getAll(); }
在进行更新或者删除操作时加上对redis的清除操作,实现redis缓存的清除更新:
// 根据ID删除数据库中信息
public boolean deleteById(int id){
// 自己定义需要的redis清除缓存操作
redisTemplate.delete(redisTemplate.keys("goods*")); // 删除正则匹配goods*系列key的缓存
boolean flag = false;
try{
userMapper.deleteById(id);
flag = true;
}catch (Exception e){
e.printStackTrace();
}
return flag;
}