上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页
摘要: BIO 同步阻塞IO 服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。 适用于连接数目小,并发小。 NIO同步非阻塞IO 服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用 阅读全文
posted @ 2022-05-31 23:16 yifanSJ 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 一、引⾔ 提起Redis,我们经常会说其底层是⼀个单线程模型,但这是不严谨的。Redis 单线程指的是⽹络请求模块使⽤了⼀个线程,即⼀个线程处理所有⽹络请求,其他模块该使⽤多线程, 仍会使⽤了多个线程。既然是单线程模型,那么CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者⽹络带宽。 阅读全文
posted @ 2022-05-31 23:00 yifanSJ 阅读(136) 评论(0) 推荐(0) 编辑
摘要: threadlocal里面使用了一个存在弱引用的map,当释放掉threadlocal的强引用以后,map里面的value却没有被回收.而这块value永远不会被访问到了. 所以存在着内存泄露. 最好的做法是将调用threadlocal的remove方法. 在threadlocal的生命周期中,都存 阅读全文
posted @ 2022-05-31 16:04 yifanSJ 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 经过我之前的实践,可以看出 NESTED事务申明在调用者上会新建一个独立事务。申明在被调用者上,若调用者存在事务则加入调用者事务。调用者不存在事务则新建一个独立事务。 这个功能好像和spring默认的事务传播行为REQUIRED一样的? 不,它的功能可是比REQUIRED要强大! 我来通过实验证明N 阅读全文
posted @ 2022-05-31 15:53 yifanSJ 阅读(3910) 评论(0) 推荐(1) 编辑
摘要: explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 三种情况: 1、id相同:执行顺序由上至下 2、id不同:如果是子查询,id的序号会递增,id值 阅读全文
posted @ 2022-05-31 14:40 yifanSJ 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 一、简介 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。 查看是否开启慢查询功能: mysql> show variables like 'slow_query%'; + + + | Variable_name | Value | + + + | sl 阅读全文
posted @ 2022-05-30 22:37 yifanSJ 阅读(599) 评论(0) 推荐(0) 编辑
摘要: 首先说明一下,锁升级和锁降级说的根本不是一个事情,锁升级是synchronized关键字在jdk1.6之后做的优化,锁降级是为了保证数据的可见性在添加了写锁后再添加一道读锁,锁降级请参考链接1。本文主要针对锁升级介绍。 一、锁升级 之前介绍过synchronized关键字,synchronized关 阅读全文
posted @ 2022-05-30 18:50 yifanSJ 阅读(824) 评论(0) 推荐(0) 编辑
摘要: 一、如何保障mysql和redis之间的数据一致性? 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问Mysql等数据库。这样可以大大缓解数据库的压力。Redis缓存数据的加载可以分为懒加载和主动加 阅读全文
posted @ 2022-05-30 14:23 yifanSJ 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 一、Redis内存淘汰的必要性 我们都知道redis的性能很高,最主要的原因之一就是redis的数据都在内存中放着,我们在从redis中获取数据或者更新redis中的数据时,都是操作的内存中的数据。而当内存被占满了之后怎么办呢?这时就有必要将一些数据清理掉,以便新的数据能够放到redis中。而清理掉 阅读全文
posted @ 2022-05-30 13:53 yifanSJ 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 一、ThreadPoolExecutor的重要参数 1、corePoolSize:核心线程数 * 核心线程会一直存活,及时没有任务需要执行 * 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理 * 设置allowCoreThreadTimeout=true(默认false)时, 阅读全文
posted @ 2022-05-30 11:54 yifanSJ 阅读(2741) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页