【缓存篇】过滤数据修改本地缓存,导致数据错乱


      一个需求中添加了本地话黁,遇到个问题,从本地缓存中查询数据并且对结果进行筛选,然后数据总是出现错乱。
      
        1.业务需求
        List 从数据库中查询出来是有AB两条数据,然后我把这些数据放入到Guava缓存中,以后每次查询从Guava缓存中获取。
        
        后来增加了一个需求,如果字符串cv 为空,不展示B数据;如果字符串cv不为空,全部展示AB两条数据;此需求通过filterAdvertByCv
         2.方法实现  

 Cache operateCache = CacheBuilder.newBuilder()
        .maximumSize(100)
        .expireAfterWrite(5, TimeUnit.MINUTES)
        .build();

StringBuilder operateBuildKey = new StringBuilder();
        String operateKey = operateBuildKey.append(USER)
            .append("_").append(classId).toString();
        
        //从本地缓存(Guava)中获取数据
        HomenMessage homeMessageInfo = homeCache.getIfPresent(operateKey);
        
        logger.info("本地缓存:{}", homeMessageInfo);
        if (null != homeMessag

你可能感兴趣的:(【缓存篇】过滤数据修改本地缓存,导致数据错乱)