02 2020 档案

摘要:无锁--偏向锁--轻量级锁(自旋锁CAS)--重量级锁 1. 偏向锁 专属于一个线程,偏向一个线程的锁,比如线程id 2. 轻量级锁 当有多个线程竞争一个锁时,升级轻量级锁,指向栈中所记录的指针,这个过程叫做CAS 3. 重量级锁 当竞争的线程超过10次,升级为重量级锁,用户态升级为了内核态,效率慢 阅读全文
posted @ 2020-02-22 13:30 塔下补刀就是菜丶 阅读(595) 评论(0) 推荐(1)
摘要:1. volatile的作用 保证共享变量对于多线程之间的可见性 防止指令重排序 2. 计算机的组成 程序启动后,会加载到内存中 内存中会有多条指令,由pc程序计数器来记录指令地址 指令执行,内存中的数据放入寄存器,ALU运算单元计算,计算完成后返回到寄存器,然后写入到内存 3. 线程可见性 可见性 阅读全文
posted @ 2020-02-22 12:52 塔下补刀就是菜丶 阅读(599) 评论(0) 推荐(0)
摘要:Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 1. String类型(一个键最大存储512M) 应用场景 计数器(incr、incrby、decr、decrby属于string数据结构,它们是原子 阅读全文
posted @ 2020-02-20 15:57 塔下补刀就是菜丶 阅读(147) 评论(0) 推荐(0)
摘要:1. 为什么需要主从复制? a. 在复杂的业务中,有一个sql需要锁表,导致不能使用读的服务,影响业务的运行,使用主从复制,让主库写,从库读,保证业务的运行 b. 做数据的热备 c. 架构扩展,业务量原来越大,I/O访问评率过高,做多库存储,提高单个机器的I/O性能 2. 原理(默认采用的是异步的方 阅读全文
posted @ 2020-02-19 14:08 塔下补刀就是菜丶 阅读(138) 评论(0) 推荐(0)
摘要:1. 缓存穿透 web服务器在处理请求的时候,先去redis查询数据,没有查到,然后到mysql去查数据 低频的缓存穿透不可怕,使用布隆过滤器解决,把mysql的热门数据放到布隆过滤器中过滤,不直接通过数据库 2. 缓存击穿(一般不用处理) redis中有一条热门数据到时间失效后,依然热门,同时又大 阅读全文
posted @ 2020-02-15 17:05 塔下补刀就是菜丶 阅读(133) 评论(0) 推荐(0)
摘要:1. 网络协议 应用层(http ftp ssh协议) 表示层 回话层 传输层(TCP) 网络层 数据链路层 物理层 2. 请求Baidu主页 linux 人为创建流指向socket 文件描述符 0输入1输出2错误 连接后,不发送东西,会发网络通信阻塞 TCP--面向连接的(3次握手后建立连接),可 阅读全文
posted @ 2020-02-15 15:19 塔下补刀就是菜丶 阅读(154) 评论(0) 推荐(1)
摘要:1. 索引的优点 大大减少了服务器需要扫描的数据量 帮助服务器避免排序和临时表 将随机io变成了顺序io 2. 索引的分类 主键索引 唯一键索引 普通索引 全文索引(text,varchar类型,类似es,solr全文) 组合索引 3. 回表 除了主键索引,后添加了普通的name索引,根据name索 阅读全文
posted @ 2020-02-15 12:00 塔下补刀就是菜丶 阅读(105) 评论(0) 推荐(0)