使用redis对商城的首页添加缓存

来源:互联网 发布:梦幻西游生死决数据 编辑:程序博客网 时间:2024/04/30 20:51

     1.redis服务:     

  String get(String key);   String set(String key,String value);      String hget(String hkey,String key);   long hset(String hkey,String key,String value);      long incr(String key);   long expire(String key,int second);   long ttl(String key);   long del(String key);   long hdel(String hkey,String key);
  2.缓存服务的调用

@Autowiredprivate TbContentMapper contentMapper;@Autowiredprivate JedisClient jedisClient;@Value("${INDEX_CONTENT_REDIS_KEY}")private String INDEX_CONTENT_REDIS_KEY;@Overridepublic List<TbContent> getContentList(long contentCid) {//从缓存中取内容try{String result = jedisClient.hget(INDEX_CONTENT_REDIS_KEY, contentCid+ "");if(!StringUtils.isBlank(result)){//把字符串转换成listList<TbContent> resultList = JsonUtils.jsonToList(result, TbContent.class);return resultList;}}catch(Exception e){e.printStackTrace();}//根据内容分类id查询内容列表TbContentExample example = new TbContentExample();Criteria criteria = example.createCriteria();criteria.andCategoryIdEqualTo(contentCid);//执行查询List<TbContent> list = contentMapper.selectByExample(example);//向缓存中添加内容try{//把list转换成字符串String cacheString=JsonUtils.objectToJson(list);jedisClient.hset(INDEX_CONTENT_REDIS_KEY, contentCid +"", cacheString);}catch(Exception e){e.printStackTrace();}return list;}
3.编写同步缓存的服务

@Autowiredprivate JedisClient jedisClient;@Value("${INDEX_CONTENT_REDIS_KEY}")private String INDEX_CONTENT_REDIS_KEY;@Overridepublic TaotaoResult syncContent(long contentCid) {try{jedisClient.hdel(INDEX_CONTENT_REDIS_KEY,contentCid+"");}catch(Exception e){e.printStackTrace();return TaotaoResult.build(500, ExceptionUtil.getStackTrace(e));}return TaotaoResult.ok();}
4、httpClient远程调用同步缓存的服务

@Autowiredprivate TbContentMapper contentMapper;@Value("${REST_BASE_URL}")private String REST_BASE_URL;@Value("${REST_CONTENT_SYNC_URL}")private String REST_CONTENT_SYNC_URL;@Overridepublic TaotaoResult insertContent(TbContent content) {//不全pojo内容content.setCreated(new Date());content.setUpdated(new Date());contentMapper.insert(content);//添加缓存同步逻辑try{HttpClientUtil.doGet(REST_BASE_URL+REST_CONTENT_SYNC_URL+content.getCategoryId());}catch(Exception e){e.printStackTrace();}return TaotaoResult.ok();}
  redis集群的搭建过程不在这里赘述!





0 0
原创粉丝点击