当前位置: 首页 > news >正文

国外酷站收录网站考试网站建设

国外酷站收录网站,考试网站建设,知乎的网站建设和网站运营,阿里云共享云主机做网站目录 引出信号量Semaphore #xff1f;Redis冲冲冲——缓存三兄弟#xff1a;缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 Java多线程——信号量Semaphore是啥 信号量Semaphore #xff1f; Semaphore 通常我们叫它信号量#xff0c; 可以用来控制同时访问特… 目录 引出信号量Semaphore Redis冲冲冲——缓存三兄弟缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 Java多线程——信号量Semaphore是啥 信号量Semaphore Semaphore 通常我们叫它信号量 可以用来控制同时访问特定资源的线程数量通过协调各个线程以保证合理的使用资源。线程限流如连接池、停车场。 public class App11 {public static void main(String[] args) throws InterruptedException {//1. 创建信号量设置并发线程数允许最大并发线程数是3Semaphore semaphore new Semaphore(3);//2. 循环创建6个线程会看到每次执行3个线程for (int i 0; i 6; i) {new Thread(() - {try {//3. 获取许可在达到限制并发线程数之前将可以正常执行线程否则要等待其他线程释放许可semaphore.acquire();System.out.println(Thread.currentThread().getName() :进入停车场);TimeUnit.SECONDS.sleep(3);System.out.println(Thread.currentThread().getName() :离开停车场);} catch (InterruptedException e) {e.printStackTrace();} finally {//4. 释放许可semaphore.release();}}, 车辆 i).start();}} }在上述示例中Semaphore 用于限制同时可以获取许可的线程数量。每个线程在执行前通过 semaphore.acquire() 获取一个许可执行后通过 semaphore.release() 释放许可。这样最多只有指定数量的线程可以同时访问资源其他线程需要等待。 Redis冲冲冲——缓存三兄弟缓存击穿、穿透、雪崩 缓存击穿 缓存击穿redis中没有但是数据库有 顺序先查缓存判断缓存是否存在如果缓存存在直接返回数据如果缓存不存在則查询数据库将数据库的数据存入到缓存 解决方案将热点数据设置过期时间长一点针对数据库的热点访问方法上分布式锁 缓存穿透 缓存穿透redis中没有数据库也没有 解决方案 1将不存在的key在redis设置值为null 2使用布隆过滤器; 原理https://zhuanlan.zhihu.com/p/616911933 布隆过滤器 如果确认key不存在于redis中那么就一定不存在 它说key存在就有可能存在也可能不存在 误差 布隆过滤器 1、根据配置类中的 key的数量 误差率计算位图数组【二维数组】 2、通过布隆过滤器存放key的时候会计算出需要多少个hash函数由hash函数算出多少个位图位置需要设定为1 3、查询时根据对应的hash函数判断对应的位置值是否都为1如果有位置为0则表示key一定不存在于该redis服务器中如果全部位置都为1则表示key可能存在于redis服务器中 缓存雪崩 缓存雪崩 Redis的缓存雪崩是指当Redis中大量缓存数据同时失效或者被清空时大量的请求会直接打到数据库上导致数据库瞬时压力过大甚至宕机的情况。 造成缓存雪崩的原因主要有两个 1.相同的过期时间当Redis中大量的缓存数据设置相同的过期时间时这些数据很可能会在同一时间点同时失效导致大量请求直接打到数据库上。 2.缓存集中失效当服务器重启、网络故障等因素导致Redis服务不可用且缓存数据没有自动进行容错处理当服务恢复时大量的数据同时被重新加载到缓存中也会导致大量请求直接打到数据库上。 预防缓存雪崩的方法主要有以下几种 1.设置不同的过期时间可以将缓存数据的过期时间分散开避免大量缓存数据在同一时间点失效。 2.使用加锁可以将所有请求都先进行加锁操作当某个请求去查询数据库时如果还没有加载到缓存中则只让单个线程去执行加载操作其他线程等待该线程完成后再次进行判断避免瞬间都去访问数据库从而引起雪崩。 3.提前加载预热在系统低峰期可以提前将部分热点数据加载到缓存中这样可以避免在高峰期缓存数据失效时全部打到数据库上。 4.使用多级缓存可以在Redis缓存之上再使用一层缓存例如本地缓存等当Redis缓存失效时还能够从本地缓存中获取数据避免直接打到数据库上。 本地缓存ehcache oscache spring自带缓存 持久层框架的缓存 总结 Java多线程——信号量Semaphore是啥
http://www.hkea.cn/news/14573191/

相关文章:

  • 北京做网站开发公司哪家好实搜网站建设
  • 做网站时如何确定网站主题国内做的比较好的协会网站
  • 网站建设手机软件山西网站建设推荐咨询
  • 网站用户需求报告seo是什么意思紧要
  • 如何打击网站网站怎么做3d商品浏览
  • 深圳市升华建设有限公司网站枫叶建站
  • 二手车网站怎么做公司网站如何制作设计
  • 网站开发一月工资多少wordpress地图定位
  • 免费源码资源源码站在线网店美工需要做什么
  • 免费域名注册哪个网站好室内设计师培训网课
  • 官网网站开发框架婚庆公司宣传文案
  • 网站开发接入支付宝wordpress为什么好卡
  • 做网站办什么营业执照百度seo查询
  • 手机主页网站推荐wordpress文章html页面
  • 为什么我做的视频网站播放不了wordpress 开发 表单
  • 网站域名起名app拉新推广平台
  • 怎么做网站排名优化免费火车头采集做网站赚钱
  • 网站二级目录是什么建站宝盒 源码
  • 安徽网站优化多少钱微信网页版登陆
  • 宝安中心客运站什么好的网站学做食品
  • 福泉网站制作自己做网站帮别人卖东西
  • 网站建设投标方案软件网站怎么做的
  • 营销型网站开发推广做的网站必须放
  • 自己做网站收费么免费网页建设
  • 做网站需要每年交钱吗学校网站查询学历
  • 购物网站两化融合建设项目报告游戏是怎么做的视频网站
  • 国外用python做的网站网站的前端开发
  • 中山网站建设开发备案的网站换空间
  • 网站开发培训成都顺义哪里有做网站设计的
  • 谷歌生成在线网站地图wordpress激活邮件