• ADADADADAD

    redis如何创建缓存[ 建站问答 ]

    建站问答 时间:2024-12-01 19:11:14

    作者:文/会员上传

    简介:

    redis创建缓存的示例:@Autowiredprivate JedisClient jedisClient;/*** 根据内容分类id查询内容列表cn.e3mall.content.service.ContentService#getContentListByCid(long)*/

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    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如何创建缓存.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: redisredis缓存