04 2024 档案

摘要:问:有哪些常见的SQL优化手段? 这也是个高频面试题,并且并非面试造火箭的那种问题,实际项目中也会有非常多的地方需要进行SQL优化 避免使用 Select * select *中,无用字段会增加网络带宽消耗,特别是varchar、blob、text等大字段 select *无法使用Mysql优化器覆 阅读全文
posted @ 2024-04-15 17:36 code-blog 阅读(32) 评论(0) 推荐(0) 编辑
摘要:缓存雪崩:同一时间段内大量缓存失效或Redis服务宕机,导致大量请求到达数据库,给数据库带来巨大压力。 解决方案: 给不同的Key的TTL(存活时间)添加一个随机值 Redis宕机时:利用Redis集群提高服务可用性(哨兵模式、集群模式) 给缓存业务添加降级限流策略(保底策略,也可以解决穿透、击穿、 阅读全文
posted @ 2024-04-08 07:14 code-blog 阅读(10) 评论(0) 推荐(0) 编辑
摘要:缓存击穿:缓存中一个热点数据过期或失效时,由于该数据非常受欢迎,会有大量请求直接打到数据库上,导致数据库负载增大、相应变慢甚至瘫痪。 解决方式: 互斥锁 在查询数据库之前首先获取分布式锁,更新redis之后再释放锁,可以保证数据的强一致性。 优缺点: 优点:强一致性 缺点:性能差 逻辑过期 数据本身 阅读全文
posted @ 2024-04-07 21:32 code-blog 阅读(13) 评论(0) 推荐(0) 编辑
摘要:缓存穿透:查询一个不存在的数据,Mysql查询不到也没有写入缓存,导致每次请求都会查询数据库。(比如恶意请求) 解决方案: 缓存空数据:返回数据为空时仍然缓存(但是需要加过期时间)。 优点:简单 缺点:消耗内存,可能存在数据不一致情况。 布隆过滤器 布隆过滤器使用Bitmap(位图)来记载一个数据是 阅读全文
posted @ 2024-04-06 22:43 code-blog 阅读(11) 评论(0) 推荐(0) 编辑
摘要:Java 代理的几种实现方式 静态代理 通过创建一个代理类来控制对目标对象的访问(也就是手动编写一个代理类)。 静态代理的优点是易于理解和实现,缺点是每个接口都需要定义一个代理类,而且功能较弱。 动态代理 动态代理分两种,Proxy接口代理和CGLib代理 接口代理 Proxy 代理是JDK内置代理 阅读全文
posted @ 2024-04-02 22:18 code-blog 阅读(36) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
🚀
回顶
收起