redis如何创建缓存

redis如何创建缓存

redis创建缓存的示例:


@Autowired

private JedisClient jedisClient;

/**

* 根据内容分类id查询内容列表

cn.e3mall.content.service.ContentService#getContentListByCid(long)

*/

public ListgetContentListByCid(long cid) {

//查询缓存

try {

//如果缓存中有直接响应结果

String json = jedisClient.hget("CONTENT_LIST", cid + "");

if (StringUtils.isNotBlank(json)) {

Listlist = JsonUtils.jsonToList(json, TbContent.class);

return list;

}

} catch (Exception e) {

e.printStackTrace();

}

//如果没有查询数据库

TbContentExample example = new TbContentExample();

Criteria criteria = example.createCriteria();

//设置查询条件

criteria.andCategoryIdEqualTo(cid);

//执行查询

Listlist = contentMapper.selectByExampleWithBLOBs(example);

//把结果添加到缓存

try {

jedisClient.hset("CONTENT_LIST", cid + "", JsonUtils.objectToJson(list));

} catch (Exception e) {

e.printStackTrace();

}

return list;

}

}

缓存同步

当做增删改时需要更新缓存

@Override

public E3Result addContent(TbContent content) {

//插入到数据库

contentMapper.insert(content);

//当增删改操作时缓存同步,删除缓存中对应的数据,下次查询时从数据库中查

jedisClient.hdel(CONTENT_LIST, content.getCategoryId().toString());

return E3Result.ok();

}



public TbItem getItemById(long itemId) {

//查询缓存

try {

String json = jedisClient.get("REDIS_ITEM_PRE" + ":" + itemId + ":BASE");

if(StringUtils.isNotBlank(json)) {

TbItem tbItem = JsonUtils.jsonToPojo(json, TbItem.class);

return tbItem;

}

} catch (Exception e) {

e.printStackTrace();

}

//缓存中没有,查询数据库

TbItemExample example = new TbItemExample();

Criteria criteria = example.createCriteria();

//设置查询条件

criteria.andIdEqualTo(itemId);

//执行查询

Listlist = itemMapper.selectByExample(example);

if (list != null && list.size() > 0) {

//把结果添加到缓存

try {

jedisClient.set("REDIS_ITEM_PRE" + ":" + itemId + ":BASE", JsonUtils.objectToJson(list.get(0)));

//设置过期时间

jedisClient.expire("REDIS_ITEM_PRE" + ":" + itemId + ":BASE",3600);

} catch (Exception e) {

e.printStackTrace();

}

return list.get(0);

}

return null;

}



我们的服务
专业提供中小企业网站建设.公司网站建设.外贸网站建设.营销型网站建设,响应式网站建设,商城网站定制,手机网站,微信小程序定制.php应用开发服务,公司成立于2014年,8年专注网站建设,秉承“以客户为根本,以科技为核心,以市场为导向”的经营理念;服务电话13714666846(微信同号)

声明:本站所有作品(图文、音视频)均由用户自行上传分享,或互联网相关知识整合,仅供网友学习交流,若您的权利被侵害,请联系 管理员 删除。

本文链接:http://news.ew35.com/