美文网首页
1.分布式缓存常规设计和代码实现

1.分布式缓存常规设计和代码实现

作者: 指尖架构141319 | 来源:发表于2019-12-09 17:44 被阅读0次

1.缓存概论:

1.1流程设计
image.png
1.1适合放入缓存的数据:
  • 访问频率高
  • 更改频率低
  • 一致性要求不高
1.2重要指标
  • 命中率 = 从缓存中读取次数 / (总读取次数[从缓存中读取次数 + 从慢速设备上读取的次数])
  • Miss率 = 没有从缓存中读取的次数 / (总读取次数[从缓存中读取次数 + 从慢速设备上读取的次数])
1.3常规设计方案
  • 流程图


    image.png
  • 代码实现
Provinces provinces = null;
        //在redis查询
        provinces = (Provinces)redisTemplate.opsForValue().get(provinceid);
        if (null != provinces){
            System.out.println("缓存中得到数据");
            return provinces;
        }
        provinces = super.detail(provinceid);
        if (null != provinces){
            redisTemplate.opsForValue().set(provinceid,provinces);//set缓存
            redisTemplate.expire(provinceid,20000, TimeUnit.MILLISECONDS);//设置过期
        }
        return provinces;
1.4 更新(包括新增和删除)操作陷阱(双删策略)
  • 流程图(读操作未命中,同时进行写操作)


    image.png
  • 代码实现
public Provinces update(Provinces entity) {
        redisTemplate.delete(entity.getProvinceid());//直接删除缓存,预防数据库成功,缓存失败
        super.update(entity);
        redisTemplate.delete(entity.getProvinceid());//双删
        return entity;
    }

相关文章

网友评论

      本文标题:1.分布式缓存常规设计和代码实现

      本文链接:https://www.haomeiwen.com/subject/fgxbgctx.html