Springboot中cache的使用

Springboot 集成了 cache ,它可以说是一种规范,主要作用用于数据缓存,提升查询的效率。
下面主要配置了使用redis 来进行缓存操作。
首先选择springboot 项目,选择要引入的依赖
developer tool 中 lombok
Nosql 中 spring data redis
i/o 中 spring cache abstraction
接着 docker 启动一个 redis
docker run -d --name myredis -p 6379:6379 redis --requirepass “密码”
springboot 配置文件中配置 redis
spring.redis.port=6379(和上面启动的容器的端口号一致)
spring.redis.password=你的redis密码
spring.redis.host=linux机器的ip

接着就是测试
首先在启动类上面加上开启缓存的注解

@SpringBootApplication
@EnableCaching//开启缓存功能
public class RediscacheApplication {

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

}

定义User类
在这里插入图片描述
因为要使用redis 序列化 ,所以要实现序列化接口

定义一个UserService,主要测试三个注解。
@Cacheable :缓存数据
@CachePut : 更新缓存的数据
@CacheEvict : 删除缓存的数据

@Cacheable(cacheNames = "sc", key = "#id")
    //多个参数可以使用#标识哪一个是key,否则就会把所有的参数都当成key
    public User getUser(int id){
        System.out.println("调用了一次");
        User user = new User();
        user.setId(id);
        user.setName("hhh");
        return user;
    }

cacheNames我在测试的时候必须要添加,作为缓存到redis 的键值对的 key 的前缀,否则会报错。
key 则是表示使用id 作为key ,只有一个参数其实可以不用使用key 参数。但是如果是多个参数则是必须要添加。通过多次调用此方法,最终输出结果打印一次“调用了一次”,多次输出user。

如果数据库的数据发生了更新,此时需要进行更新缓存。

@CachePut(cacheNames = "sc", key = "#user.id")
    public User updateUser(User user) {
        return user;
    }

同样需要配置cacheNames 以及 配置key 是根据该对象的哪一个属性来进行更新的,一般都是唯一的主键 id。

最后如果是要删除缓存,如下。

 @CacheEvict(cacheNames = "sc")
    public void deleteUser(int id){
        System.out.println("id delete");
    }

通过该注解指定cacheNames 即可,并传入id 通过 id 来删除缓存。

该缓存只要实现了注解,就会自动向redis 中存储数据。其他的缓存原理大致是一致的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 3.0 目前还没有正式发布,所以还不能确定它是否添加了对 Jetcache 的官方支持。但是,你可以在你的 Spring Boot 项目手动集成 Jetcache。 要在 Spring Boot 项目使用 Jetcache,首先需要添加 Jetcache 的相关依赖。你可以在 Maven 或者 Gradle 的配置文件添加以下依赖: Maven: ```xml <dependency> <groupId>com.alicp.jetcache</groupId> <artifactId>jetcache-starter-redis</artifactId> <version>2.6.0</version> </dependency> ``` Gradle: ``` compile group: 'com.alicp.jetcache', name: 'jetcache-starter-redis', version: '2.6.0' ``` 上述依赖是使用 Redis 作为缓存后端的示例,如果你想使用其他的缓存后端,可以根据需要选择不同的依赖。 接下来,你需要在你的 Spring Boot 配置文件配置 Jetcache 的相关信息。以下是一个示例配置: ```yaml spring: jetcache: enabled: true remote: server-addrs: redis://localhost:6379 ``` 这个示例配置将启用 Jetcache,并将 Redis 作为缓存后端。 最后,在你的代码使用 `@Cached` 注解来标记需要缓存的方法,例如: ```java import com.alicp.jetcache.anno.Cached; @Cached(name = "myCache", expire = 3600) public String getData(String key) { // 从数据库或其他数据源获取数据的逻辑 // ... } ``` 这样,`getData` 方法的返回值将被缓存起来,下次调用时可以直接从缓存获取,而不需要执行方法体。 这只是一个简单的示例,你可以根据实际需求配置更多的缓存策略和选项。Jetcache 提供了丰富的功能和选项,你可以参考 Jetcache 的官方文档以获取更多详细信息和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值