美文网首页
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