缓存穿透-布隆过滤器-Zookeeper分布式锁

   缓存穿透 
     
 数据访问有高、低频之分。我们一般把高频数据放在redis中,所谓的缓存穿透就是一个数据在redis中没查看,得到Mysql中查。那这种现象能否避免吗?肯定不能。但是我们可以避免高频的缓存穿透。
    1.布隆过滤器:
        1.1.布隆过滤器干什么的?解决内存紧张。
        1.2怎么实现:不存数据值,用bitmap标识数据。
        1.3过程:
        1.4错误率,哈希碰撞:
        1.5遇到这种情况怎么办?
   2.缓存雪崩
   3.分布式锁
     3.1分布式锁的应用条件
     3.2 mysql分布式锁
     3.3死锁的应对redission
  4. Zookeeper分布式锁
    4.1存储数据,fs
    4.2创建多种类型的目录:
    4.3事件回调机制:

 解决内存紧张的问题的通用方法就还是,过滤器。著名的有布隆过滤器
 1.布隆过滤器:
        1.1.布隆过滤器干什么的?解决内存紧张。
        1.2怎么实现:不存数据值,用bitmap标识数据。

              数组标识数据,以前是id(int就4个字节),现在是1bit。
              
        1.3过程:
             
1)client. id来了一个id请求 2)d进行hash 计算得到值 3)用计算后的值到数组中查询
              
                
        1.4错误率,哈希碰撞:
                
id=10 哈希后的值可能是:3
                 id=100 哈希后的值可能是:3
                 不同id哈希后值可能都一样。这就是哈希碰撞。
        1.5遇到这种情况怎么办?
             
解决方法1:加大数组的长度
             
           解决方法2:增加哈希函数的个数
缓存穿透有两种极端的形式:
缓存击穿:一条数据当掉
缓存雪崩:所有数据当掉
   2.缓存雪崩
       
2.1缓存雪崩,就是redis中存了大量的热门数据,突然一个时刻,集中失效。
        2.2应对 方法1:给每条数据设置一个随机的有效期,比如0.5个小时,半天,一个月。这个可以设置的。
                     方法2:用副本或者切片的方式存储。
                     副本:就还是多存几个一样的。
                     切片:就是把一个整体分块存。
   3.分布式锁
     
    高频访问就不得不说锁了。
         分布式就应用了分布式锁。
         分布式一致性服务(多台,节点)。
          一致性:多台拿到的数据都是一样的。         
     3.1分布式锁的应用条件
         
a) 共享资源 b)资源互斥 c)多任务场景           
     3.2 mysql分布式锁
          
a)锁是什么:外部的锁,锁就是一个值。
            b)过程:先插值,谁先插入,代表谁抢到了锁,jvm1抢到,插入后,再把锁释放。
            c)死锁:JVM1当机了,永远不会释放锁。
             怎么办:redis分布式锁,有超时时间。( redission )
      
          
     3.3死锁的应对redission
          
超时时间的设置。
  4. Zookeeper分布式锁
    4.1存储数据,fs(命令行下回写个详解)
          
存储数据,文件系统的格式:创建、删除 。         

        查看根目录:
        删除文件 rmr/msp
          创建:create /msb 999
          查看: ls
         创建:create /msb/tmp 888
         查看: ls/msb 文件夹 get/msb/tmp

    4.2创建多种类型的目录:
        
zookeeper维护的是全局,有顺序,唯一的目录。
        a)持久目录:创建全局有顺序的 create -s /msb/iii 666
        b)临时目录 创建临时有顺序的 create -e -s /msb/iii 666
​​​​​​​    4.3事件回调机制:
       
a)client可以注册事件 msb注册了一个事件;何时触发 ; 触发调用的是回调函数
        a).事件谁注册:client注册:目录注册事件
        b).事件触发:谁设置,谁触发;client触发,目录触发响应
        c).触发之后谁来运行,client 上回调函数运行
      注意:谁注册-谁触发

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值