首页  ·  知识 ·  编程语言
SpringBoot与Redis的集成
网友  博客园  JAVA  编辑:Coisini   图片来源:网络
Redis是一个完全开源免费的、遵守BSD协议的、内存中的数据结构存储,它既可以作为数据库,也可以作为缓存和消息代理。因其性能优异等优势,目前已被很多企业所使用,但通常在企业中我们会将其作

Redis是一个完全开源免费的、遵守BSD协议的、内存中的数据结构存储,它既可以作为数据库,也可以作为缓存和消息代理。因其性能优异等优势,目前已被很多企业所使用,但通常在企业中我们会将其作为缓存来使用。Spring Boot对Redis也提供了自动配置的支持,接下来本小节将讲解如何在Spring Boot项目中使用Redis。

添加Redis缓存


添加Redis依赖:

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-redis</artifactId>

    <version>1.4.4.RELEASE</version>

</dependency>

  添加@EnableCaching注解开启缓存:

@SpringBootApplication

@EnableCaching  //开启缓存

public class SpringbootApplication {

    public static void main(String[] args) {

        SpringApplication.run(SpringbootApplication.class, args);

    }

}

  添加@Cacheable注解来支持缓存:

@Cacheable(value="UserCache",key="'user.getAllUsers'")

@Override

public List<User> getAllUsers() {

    return userMapper.getAllUsers();

}

  使实体类实现可序列化接口:

public class User implements Serializable {

    private Integer id;

    private String username;

    private String address;

    ...

  指定Redis缓存主机地址:

spring.redis.host=127.0.0.1

spring.redis.port=6379

  启动项目,测试缓存使用:

  在没有使用Redis缓存之前,每刷新一次页面,都会执行一次查询数据库的操作,添加缓存后,会发现控制台中只出现了一次查询语句,这也就说明所配置的Redis缓存已经生效。

清除Redis缓存

  Redis中的缓存数据不会一直存在,当执行添加、更新和删除操作后,数据库中的数据会发生变化,而Redis缓存中的数据同样也需要进行相应的变化。为了保证Redis缓存中的数据与数据库中的一致,通常需要在执行添加、更新和删除操作之前清除缓存,然后在下一次执行查询操作时,将新的数据存储到Redis缓存中。

  @CacheEvict注解清除缓存:

@CacheEvict(value="UserCache",key="'user.getAllUsers'")

@Override

public void deleteUser(Integer id) {

    System.out.println("id:" + id);

    userMapper.delete(id);

}

本文作者:网友 来源:博客园
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读