//redis优化:
//1.先从redis中看看有没有
List<Plan> redisPlans = redisTemplate.opsForList().range("zhunneng_plans", 0, -1);
if(redisPlans ==null || redisPlans.size()==0) {
//redis中没有该数据,从mysql中查询,且放入redis一份,返回给前台
PageInfo<Plan> info = planService.findAll(pageNum,pageSize);
System.out.println("从mysql中查询了数据!!!!!!!!!!!!!!!!!!!!!");
//往redis中存一份
redisTemplate.opsForList().rightPushAll("zhunneng_plans", info.getList().toArray());
model.addAttribute("info", info);
}else {
// redis数据不为空
System.out.println("从redis中查询了数据!!!!!!!!!!!!!!!!!!!!!");
model.addAttribute("info", new PageInfo<>(redisPlans));
}
注意:别忘记启动redis服务
PageInfo<Plan> info = (PageInfo<Plan>) HLUtils.findByHighLight(elasticsearchTemplate, Plan.class, pageNum, pageSize, new String[] {
"manager","name","content"}, "id", keyword);
注意:**linux中不识别 \ 只识别 / **
增加,修改,删除的时候,不仅要对mysql做操作,还要利用kafka发送消息,接收消息,让监听器接收到消息之后,做对应的同步es索引库,同步redis数据库(无论是增,删,改,都选择把redis的数据删除了.)的操作
何才能保证es索引库,redis数据库,mysql数据库中的数据一致性?
增加,修改,删除的时候,不仅要对mysql做操作,还要利用kafka发送消息,接收消息,让监听器接收到消息之后,做对应的同步es索引库,同步redis数据库(无论是增,删,改,都选择把redis的数据删除了.)的操作