当前位置:   article > 正文

Spring Boot 整合Redis进行数据缓存_spring boot redis缓存数据,提高

spring boot redis缓存数据,提高

在我的毕设项目中,我使用Redis进行数据缓存还有对session进行缓存,所以我开始对Redis进行学习,下面是我项目中如何对Spring Boot和Redis进行整合的介绍。

安装Redis

我们直接访问github网址:redis下载,下载最新的windows X64版本的压缩包
这里写图片描述
下载完成后随便解压到我们的盘符内的文件即可
这里写图片描述

开启Redis

解压完成后我们来开启Redis数据库,Redis数据库的默认端口是6379,如果已经被其他应用程序占用,请自行修改redis.windows.conf配置文件。

如果没有端口没有被占用,我们需要在cmd命令窗口执行运行Redis,我们首先使用cmd命令进入到Redis解压目录并且执行redis-server.exe redis.windows.conf命令即可。
这里写图片描述

添加Redis依赖

 <!-- 添加Redis缓存支持 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>1.4.3.RELEASE</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

配置Redis数据库

这里写图片描述

配置CacheManager

下面我们需要让SpringBoot内置的缓存框架使用我们的Redis作为新的缓存,我们来添加一个RedisConfiguration的配置类

package com.ciyou.edu.config.redis

import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.cache.CacheManager
import org.springframework.cache.annotation.CachingConfigurerSupport
import org.springframework.cache.annotation.EnableCaching
import org.springframework.cache.interceptor.KeyGenerator
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.data.redis.cache.RedisCacheManager
import org.springframework.data.redis.core.RedisTemplate

import java.lang.reflect.Method

/**
 * Redis配置类
 * @EnableCaching注解来开启我们的项目支持缓存
 * 继承CachingConfigurerSupport重写keyGenerator()来自定义key
 */
@Configuration
@EnableCaching
class RedisConfiguration extends CachingConfigurerSupport{


    private static final Logger logger = LoggerFactory.getLogger(RedisConfiguration.class)

    /**
     * 采用RedisCacheManager作为缓存管理器
     * @param redisTemplate
     * @return
     * SpringBoot项目启动时就会去找自定义配置的CacheManager对象并且自动应用到项目中
     */
    @Bean
    public CacheManager cacheManager(RedisTemplate redisTemplate){
        logger.info("生成RedisCacheManager缓存管理器...")
        return new RedisCacheManager(redisTemplate)
    }

    @Override
    KeyGenerator keyGenerator() {
        return new KeyGenerator() {
            @Override
            Object generate(Object target, Method method, Object... params) {
                //格式化缓存key字符串
                StringBuilder sb = new StringBuilder()
                //追加类名
                sb.append(target?.getClass()?.getName())
                //追加方法名
                sb.append(method?.getName())
                //遍历参数并且追加
                for(Object obj : params){
                    sb.append(obj.toString())
                }
                logger.info("调用Redis缓存Key:" + sb.toString())
                return sb.toString()
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

我们使用@EnableCaching注解来开启我们的项目支持缓存,我们在配置类内添加了方法cacheManager(),方法的返回值则是使用了我们的Redis缓存的管理器,SpringBoot项目启动时就会去找自定义配置的CacheManager对象并且自动应用到项目中。

我们重写keyGenerator方法,来自定义key的缓存格式。

使用Redis缓存

进行完上述的配置,我们就可以开始使用Redis缓存。
这里写图片描述

@CacheConfig:该注解是用来开启声明的类参与缓存,如果方法内的@Cacheable注解没有添加key值,那么会自动使用cahceNames配置参数并且追加方法名。
@Cacheable:配置方法的缓存参数,可自定义缓存的key以及value。

最后,感谢几位作者的文章解惑:
第十六章:使用Redis作为SpringBoot项目数据缓存
Redis系列三 - Spring boot如何使用redis做缓存及缓存注解的用法总结
REDIS学习(3.2)spring boot 使用redis作为缓存
Spring Boot框架如何通过Redis实现Session共享
Spring Boot + Mybatis + Redis二级缓存(Java Web现代化开发)
Springboot中使用redis,自动缓存、更新、删除

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/745073
推荐阅读
相关标签
  

闽ICP备14008679号