- 博客(3)
- 资源 (2)
- 收藏
- 关注
原创 SpringBoot异步任务及并行事务实现
而CompletableFuture提供了操作Future执行的各种情况的API,就比如CompletableFuture.allOf(Thread1, Thread2, ...),该方法可以在传入的子线程执行完前,阻塞当前线程,下面我们就就会用到。子计数器用于告知主线程,各子线程是否执行完毕,未执行完毕就阻塞主线程。这两个问题的出现其实是由于一个原因,Spring中的注解基本都是靠AOP来增强,实现原理就是在调用@Async的方法时,实际是在调用该方法的代理类,代理类中将该方法的执行逻辑提交给了线程池。
2023-08-03 14:32:34
1453
1
原创 Redis面试题
Redis对数据设置数据的有效时间,数据过期以后,就需要将数据从内存中删除掉。定期删除:每隔一段时间,我们就对一些key进行检查,删除里面过期的key(从一定数量的数据库中取出一定数量的随机key进行检查,并删除其中的过期key)。缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮。惰性删除:设置该key过期时间后,我们不去管它,当需要该key时,我们在检查其是否过期,如果过期,我们就删掉它,反之返回该key。
2023-07-27 13:59:53
126
1
原创 mysql分页页码越大,速度越慢(深度分页问题)
深度分页问题的本质是在 MySQL 数据库中,通过 LIMIT 和 OFFSET 关键字进行分页时,MySQL 需要在每次查询时扫描整张表,直到找到当前页的数据。当我们每次查询的记录数很小,但是查询次数很多时,就会产生大量的 I/O 操作,严重影响查询效率。转移到主键索引树查询的话,查询条件得改为主键id了,之前SQL的update_time这些条件就抽到子查询。因为以上的SQL,回表了100010次,实际上,我们只需要10条数据,也就是我们只需要10次回表其实就够了。这样就导致查询性能的下降。
2023-07-20 11:02:51
1248
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人