美文网首页工作生活
springboot-redis-leccure

springboot-redis-leccure

作者: jianshuqiang | 来源:发表于2019-07-01 15:40 被阅读0次

一、基本配置

spring:
    #cache
  cache:
    type: redis
    redis:
      cache-null-values: false
      time-to-live: 600000
      use-key-prefix: true
    cache-names: userCache,roleCache,privCache
    #redis
  redis:
    lettuce:
      pool:
        max-active: 7
        max-idle: 7
        min-idle: 3
        max-wait: -1
      shutdown-timeout: 200
    host: localhost
    port: 6379

pom文件

      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

开启缓存(在启动类中开启)

@EnableCaching

二、缓存中相关的注解以及配置

注解名称 使用场景 使用方法
@Cacheable 将数据以一定的条件存储到缓存中,并根据一定的条件拿取 @C一、基本配置
spring:
    #cache
  cache:
    type: redis
    redis:
      cache-null-values: false
      time-to-live: 600000
      use-key-prefix: true
    cache-names: userCache,roleCache,privCache
    #redis
  redis:
    lettuce:
      pool:
        max-active: 7
        max-idle: 7
        min-idle: 3
        max-wait: -1
      shutdown-timeout: 200
    host: localhost
    port: 6379

pom文件

      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

开启缓存(在启动类中开启)

@EnableCaching

二、缓存中相关的注解以及配置

@Cacheable:将数据以一定的条件存储到缓存中,并根据一定的条件拿取|
@Cacheable(value="cacheName",key="#key",condition ="",unless="")
示例:

@Cacheable(
value = "queryPage",
key="#pageQuery.data.roleName",
condition = "''.equals(#pageQuery.data.roleName)",
unless = "#result == null")
public @interface Cacheable {
    @AliasFor("cacheNames")
    String[] value() default {};
    @AliasFor("value")
    String[] cacheNames() default {};
    String key() default "";
    String keyGenerator() default "";
    String cacheManager() default "";
    String cacheResolver() default "";
    String condition() default "";
    String unless() default "";
    boolean sync() default false;
}

value:可以当做key的前缀,可以避免不同的场景存在key值相同的情况
key:key值,固定的值使用‘’,也可以使用spel表达式
condition:存储条件,为true的时候存储
unless:存储条件,为true的时候不存储
result:为返回的结果(查询结果)
注意:在进行存储的时候key值不应为null,在开发中key值缺省的时候,每次都进行存储操作,但是没法进行获取操作,即不在缓存中拿数据,但是随着页面的刷新访问次数的增加,缓存中的数据回越来越多
@CacheEvict:清空缓存

public @interface CacheEvict {
    @AliasFor("cacheNames")
    String[] value() default {};
    @AliasFor("value")
    String[] cacheNames() default {};
    String key() default "";
    String keyGenerator() default "";
    String cacheManager() default "";
    String cacheResolver() default "";
    String condition() default "";
    boolean allEntries() default false; #是否全部清空
    boolean beforeInvocation() default false;
}

@CacheEvict(value = "roleListCache", allEntries = true),
@Cacheput更新缓存
@Caching包含上述

public @interface Caching {
    Cacheable[] cacheable() default {};
    CachePut[] put() default {};
    CacheEvict[] evict() default {};
}

@Caching(evict = {
@CacheEvict(value = "roleListCache", allEntries = true),
@CacheEvict(value = "roleListSizeCache", allEntries = true)
})

相关文章

  • springboot-redis-leccure

    一、基本配置 pom文件 开启缓存(在启动类中开启) 二、缓存中相关的注解以及配置 pom文件 开启缓存(在启动类...

网友评论

    本文标题:springboot-redis-leccure

    本文链接:https://www.haomeiwen.com/subject/aobgcctx.html