美文网首页
Springboot redis 使用

Springboot redis 使用

作者: 楚长铭 | 来源:发表于2020-03-08 10:16 被阅读0次

    依赖

    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-data-redis'
        implementation 'org.springframework.boot:spring-boot-starter-web'
        compileOnly 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
        testImplementation('org.springframework.boot:spring-boot-starter-test') {
            exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
        }
    }
    

    配置文件

    server:
      port: 10000
    
    spring:
      application:
        name: redis-project
      redis:
        host: localhost
        port: 6379
        #密码
        password:
        database: 0
        #超时时间(毫秒)
        timeout: 1000
        jedis:
          pool:
            #最大连接数
            max-active: 8
            #最小空闲连接
            min-idle: 0
            #最大阻塞等待时间(毫秒)
            max-wait: 1000
            #最大空闲连接
            max-idle: 8
    

    开启缓存

    @EnableCaching
    @SpringBootApplication
    public class RedisProjectApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(RedisProjectApplication.class, args);
        }
    
    }
    

    缓存注解

    为了简化配置,可以使用静态变量来模拟替数据库

     public static String db = "模拟数据库数据";
    

    这里介绍最简单的使用注解来控制缓存的方式

    @Cacheable

     @Cacheable(cacheNames = {"test"}, key = "#id",condition = "(#id) != null",unless = "#result !=null ")
        public String getDb(String id) {
            log.info("-----测试是否进入该方法:{}----", id);
            return db;
        }
    
    • 这个注解用于获取数据,如果缓存中有就从缓存中获取,如果没有就执行方法,然后返回值就自动放入缓存中
    • value/cacheNames 指定缓存组件名称,数组类型可以指定多个
    • key /keyGenerator 两者选一,作为缓存的key
    • condition 缓存条件,只有判断条件为 true 才进行缓存
    • unless 缓存条件,只有判断条件为true时候进行缓存;可以使用#result获取方法的返回挥之
    • sync 是否开启异步

    @CachePut

     @CachePut(cacheNames = {"test"}, key = "#id")
        public String update(String id, String data) {
            db = data;
            return db;
        }
    
    • 该注解与@Cacheable使用方式相似,不过每次访问该方法都会进入方法之中,执行成功之后更新缓存

    @CacheEvict

    @CacheEvict(cacheNames = {"test"}, key = "#id")
        public void remove(String id) {
    
        }
    
    • 用于删除缓存

    相关文章

      网友评论

          本文标题:Springboot redis 使用

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