spring redis缓存

原文地址:https://www.cnblogs.com/zdd-java/p/7553271.html

  • pom.xml  (加入spring和reids jar包)
     
            
                org.springframework.boot
                spring-boot-starter-redis
            

     

  • spring-redis.xml配置(通过配置线程池方式连接redis, 提供操作redis的api)
    
    
        
        
            
            
            
            
            
            
        
    
        
        
            
            
            
            
            
            
            
        
    
      
        
            
            
                
                
            
                
            
        
    
        
        
            
            
            
            
                
                     
                    
                    
                
            
        

     

  • 由于使用的是spring提供的注解方式实现redis缓存,所以需要在spring配置文件加上cache标签,否则注解不会生效。
      
    

    配置好后如何使用:

  • 在需要用到缓存的Service实现类方法加上对应的注解,例如一般查询方法就是加上@Cacheable; 注意下面getBankProvince这个方法中我并没有传入参数,如果不带参数查询则要定义一个key(如何自定义key参见第2条),否则运行时候会出现无法找到key的错误,至于为什么报错下次会详细分析。
  • 我在注解里定义了一个key  #root.methodName,代表的是默认使用方法名称 getBankProvince 作为key的后缀, 则拼接后的完整key为 get_bank_province_list:getBankProvince。
  • 第一次请求 getBankProvince方法 Spring会做一个切面操作,也就是先请求redis,如果redis发现没有这个key,则会查询数据库,查询完成后会将数据存到redis。
  • 第二次请求后由于第一次请求已经把数据存到了redis, 所以能从redis查询到数据,则不会再去重复查询数据库了。
    /**
         * @Cacheable 
         * 应用到读取数据的方法上,先从缓存中读取,如果没有再从DB获取数据,然后把数据添加到缓存中
         * unless 表示条件表达式成立的话不放入缓存
         */
        @Cacheable(value = "get_bank_province_list",key = "#root.methodName")
        public List getBankProvince() {
           
            List list = new ArrayList();
            List listItem = sAreasMapper.getBankProvince();
            for(int i=0;i

     

你可能感兴趣的:(框架)