redis如何创建缓存 redis如何实现缓存

主机教程 建站分享 2年前 (2022-12-08) 184次浏览

文章摘要:redis如何创建缓存 redis如何实现缓存

redis创建缓存的示例: @Autowired private JedisClient jedisClien […]

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;

}


声明:
若非注明,本站文章源于互联网收集整理和网友分享发布,如有侵权,请联系站长处理。
文章名称:redis如何创建缓存 redis如何实现缓存
文章链接:http://www.7966.org/post/15581.html
转载请注明出处

喜欢 (0)