project day4

目标:

(1)实现缓存逻辑。(Redis)

(2)完成搜索功能。(Solr)

缓存可以提高搜索效率,以下情况一般使用缓存

(1)查询频率较高的数据。

(2)修改频率较低的数据。

缓存逻辑实现:

1.添加缓存

需求:在REST接口中,给导航菜单、首页大广告位内容添加缓存。缓存逻辑在ego-rest工程中实现。

1.1.添加Redis的jar包

1.2.spring整合Redis集群

1.3.修改ContentServiceImpl类

@Service

public class ContentServiceImpl implements ContentService{

private String EGO_CONTENT = "EGO_CONTENT";

@Autowired

private JedisCluster jedisCluster;

@Autowired

private ContentMapper mapper;

/*

 * 缓存逻辑

 *    (1)首先查找缓存。

 *    (2)如果缓存有数据,则直接返回数据,不需要查询数据库

 *    (3)如果缓存中没有数据,则查询数据库。并且将数据放入缓存中。

 *    

 *    (4)缓存不能影响正常的业务执行,即当前缓存无法使用,则直接查询数据库

 *

 * 确定选用哪一个数据结构类型(string,list,set,hash

 * 选用数据结构类型的时候,有一个原则:能用hash尽量使用hash。原因:减少key的数量,在寻址的时候速度更快。

 *

 * {key:{field:value}}   

 * 我们这里使用hash数据结构类型,key定义成一个常量EGO_CONTENT   field就使用类型分类的id,value使用内容列表的json格式。

 *

 * 注意:hash结构只能存储string格式的数据

 *

 */

@Override

public EgoResult getContentByCatId(Long catId) {

List<Content> list = null;

try {

//1、查找缓存

String jsonData = jedisCluster.hget(EGO_CONTENT, catId+"");

if(null!=jsonData && !"".equals(jsonData)){

//缓存里面有数据,则直接返回数据即可

list = JsonUtils.jsonToList(jsonData, Content.class);

}else{

//如果缓存中查不到数据,则查询数据库

Map<String, Object> columnMap = new HashMap<>();

columnMap.put("category_id", catId);

list = mapper.selectByMap(columnMap);

//再将数据放入缓存中

jedisCluster.hset(EGO_CONTENT, catId+"", JsonUtils.objectToJson(list));

}

} catch (Exception e) {

e.printStackTrace();

//如果缓存中查不到数据,则查询数据库

Map<String, Object> columnMap = new HashMap<>();

columnMap.put("category_id", catId);

list = mapper.selectByMap(columnMap);

}

return EgoResult.ok(list);

}

}

1.4.测试

(1)重启rest工程

(2)访问portal工程首页。将缓存添加到redis中。

(3)再次访问portal工程首页。查看缓存是否生效。

缓存同步:修改、更新导航菜单、网站内容后,要同步修改缓存,或者清空对应的缓存。

2.系统架构

在本项目中,我们将搜索业务独立出来,创建搜索子系统。这样做,既能提高系统的拓展能力,也能灵活的对系统进行分布式部署。

实现思路:

(1)搭建搜索服务器。

(2)创建搜索系统。

(3)发布搜索服务的公共接口。

(4)在门户系统调用该接口,实现搜索。

3.搭建搜索服务器

3.1.配置solr服务器

3.1.1.解压一个新的Tomcat,专门用来加载Solr。

3.1.2.部署solr到Tomcat中

3.1.3.添加Tomcat依赖的jar包

3.1.4.创建SolrHome

3.1.5.配置SolrHome

3.1.6.修改web.xml加载SolrHome

3.1.7.启动Tomcat测试

访问地址   http://localhost:8080/solr

 

转载于:https://my.oschina.net/u/4162158/blog/3080004

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值