SpringBoot 整合 Redis 缓存

Spring Boot提供了对Spring Cache抽象的支持,可以很容易地与Redis集成。

添加Redis依赖

在pom.xml文件中添加Spring Boot Starter Redis依赖:

xml 复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
</dependencies>

配置Redis连接信息

在application.properties或application.yml中配置Redis连接信息:

yaml 复制代码
spring.redis.host=your-redis-host
spring.redis.port=your-redis-port
spring.redis.password=your-redis-password

启用缓存支持

在Spring Boot应用的主类(通常是带有@SpringBootApplication注解的类)上添加@EnableCaching注解,启用缓存支持:

java 复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;

@SpringBootApplication
@EnableCaching
public class YourApplication {

    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}

使用缓存注解

在你的Service类或方法上使用Spring Cache注解,比如@Cacheable、@CachePut、@CacheEvict等。以下是一个简单的示例:

java 复制代码
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

@Service
public class MyService {

    @Cacheable(value = "myCache", key = "#id")
    public String getCachedData(Long id) {
        // Your business logic to fetch data from a data source
        return "Data for id " + id;
    }
}

在上述例子中,@Cacheable注解表示在调用getCachedData方法时,会先检查缓存中是否存在对应的数据,如果存在则直接返回缓存的数据,否则执行方法体逻辑,并将结果缓存起来。

清理缓存

使用@CacheEvict注解可以在数据变更时清理缓存,例如:

java 复制代码
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service;

@Service
public class MyService {

    @CacheEvict(value = "myCache", key = "#id")
    public void updateData(Long id) {
        // Your business logic to update data
    }
}

上述代码中,updateData方法在执行后会清理缓存中指定id的数据。

以上是一个简单的Spring Boot整合Redis缓存的示例,你可以根据实际需求进一步扩展和配置。

相关推荐
掘金-我是哪吒15 分钟前
分布式微服务系统架构第156集:JavaPlus技术文档平台日更-Java线程池使用指南
java·分布式·微服务·云原生·架构
亲爱的非洲野猪41 分钟前
Kafka消息积压的多维度解决方案:超越简单扩容的完整策略
java·分布式·中间件·kafka
wfsm43 分钟前
spring事件使用
java·后端·spring
微风粼粼1 小时前
程序员在线接单
java·jvm·后端·python·eclipse·tomcat·dubbo
缘来是庄1 小时前
设计模式之中介者模式
java·设计模式·中介者模式
rebel2 小时前
若依框架整合 CXF 实现 WebService 改造流程(后端)
java·后端
代码的余温3 小时前
5种高效解决Maven依赖冲突的方法
java·maven
慕y2743 小时前
Java学习第十六部分——JUnit框架
java·开发语言·学习
paishishaba3 小时前
Maven
java·maven
张人玉3 小时前
C# 常量与变量
java·算法·c#