java
文章平均质量分 95
qq_37030093
这个作者很懒,什么都没留下…
展开
-
线程池和异步
1、初始化线程的4种方式 1、实际开发中,只用线程池【高并发状态开启了n个线程,会耗尽资源】 2、当前系统中线程池只有一两个,每个异步任务提交给线程池让他自己去执行 1)、继承Thread 2)、实现 Runnable接口 3)、实现 Callable接口+FutureTask(可以拿到返回结果,可以处理异常) FutureTask futureTask = new FutureTask(new MyCallable()); Thread thread = new Thread(futur原创 2021-12-31 23:00:29 · 1135 阅读 · 0 评论 -
redis缓存击穿、穿透、雪崩
高并发下缓存失效问题 缓存穿透 缓存穿透: 指查询一个一定不存在的数据,由于缓存是不命中,将去查询数据库,但是数据库也无此记录,我们没有将这次查询的null写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义 风险: 利用不存在的数据进行攻击,数据库瞬时压力增大,最终导致崩溃 解决: null结果缓存,并加入短暂过期时间 缓存雪崩 缓存雪崩: 缓存雪崩是指在我们设置缓存时key采用了相同的过期 时间,导致缓存在某一时刻同时失效,请求全部转发到 DB,DB瞬时压力过重雪崩。 解决:原创 2021-12-28 14:15:06 · 521 阅读 · 0 评论