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