07 2021 档案
摘要:先直接上代码干货 创建一个Speak接口和ZhangSan实体类 Speaker接口: public interface Speaker { void speak(); } ZhangSan类: public class ZhangSan implements Speaker { @Override
阅读全文
摘要:一.hashCode()和equals()作用 1.hashCode()和equals()都是Obiect类中的方法 先看看Object类中这两个方法的定义: Object 的 hashCode 方法是本地方法,也就是用 c 或 c++ 实现的,该方法直接返回对象的内存地址 Object 的 equ
阅读全文
摘要:小伙伴都知道通过Executors静态类可以直接创建4种类型的线程池, 但读过阿里巴巴开发手册的童鞋一定见过这句话: 强烈不建议直接使用Executors静态类来创建线程池!!! 这是为啥呢? 原因如下: 1:FixedThreadPool 和 SingleThreadPool: 允许的请求队列(底
阅读全文
摘要:1. @Transactional 控制事务 @Transactional是一种基于注解管理事务的方式,spring通过动态代理的方式为目标方法实现事务管理的增强。 用过Spring声明式事务的童鞋应该都知道@transactional这个注解,我们在接口, 类, 或者方法上使用@transacti
阅读全文
摘要:一. 悲观锁、乐观锁 1、悲观锁认为共享资源并发操作一定会出现问题,使用synchronized关键字或者lock接口特性加锁; 2、乐观锁认为不加锁给并发操作带来性能提升,常采用CAS(Compare比较 And Swap交换)自旋锁;典例就是并发原子类,通过CAS自旋来更新值 二. 公平锁、非公
阅读全文
摘要:一.什么是锁 数据库的锁是为了对共享资源进行并发访问,提供数据的完整性和一致性,这样才能保证在高并发场景下,访问数据库时,数据不会出现问题. 二.锁机制 1.按锁的粒度划分:行级锁、表级锁、页级锁、间隙锁 MyISAM和MEMORY采用表级锁(table-level locking) InnoDB支
阅读全文
摘要:1.什么是索引 索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。索引是一个文件,它是要占据物理空间的。 2.索引的优缺点 索引的优点: 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性 可以大大加快数据的检索速度,这也是创建索引的最主要的原因 可以加速表和表之间的连接
阅读全文
摘要:1.Redis实现简单队列(先进先出) 主要是利用list特性: lpush,rpush操作入队列,,,,, lpop,rpop操作出队列,,,, 但是当队列为空时,lpop和rpop会一直空轮训,消耗资源; 所以引入阻塞读blpop和brpop(b代表blocking),阻塞读在队列没有数据的时候
阅读全文
摘要:Redis缓存处理流程: 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 1.缓存穿透 指的是大量请求都在查询一个不存在key,,导致所有请求最终都落在数据库上,,造成数据库压力巨大 解决: 1)针对不存在的
阅读全文
摘要:Redis持久化机制: RDB快照 AOF日志 一. RDB快照 1.概念 RDB是把当前进程数据生成快照保存到硬盘的过程(以二进制方式写入磁盘) 2.触发机制: 手动和自动 【1】手动触发分别对应save和bgsave命令 ·save命令:阻塞当前Redis服务器,直到RDB过程完成为止,对于内存
阅读全文
摘要:一.Redis过期策略 1. 设置过期命令 expire设置生存时间 expireat设置过期时间点(时间戳) 2. key的3种过期策略 (1)定时删除:在设置过期时间的同时,设置一个定时器,定时器的执行时间就是过期的时间点。 优点:对内存最友好,过期的键会以最快的被删除,释放内存。 缺点:对CP
阅读全文
摘要:1. redis事务概念: 可以一次执行多个命令,本质是一组命令的集合。 一个事务中的所有命令都会序列化,按顺序串行化执行而不会被其它命令插入,一次性、顺序性、排他性的执行一系列命令。 2. 5个常用命令: 【1】MULTI: 标记一个事务块的开始 【2】EXEC: 执行事务块中所有的命令 【3】D
阅读全文
摘要:redis是一个基于键值对的NoSQL数据库 redis的数据类型: 键的类型只能为字符串 值的类型有5种: 字符串String 哈希hash 列表list 集合set 有序集合zset redis为什么快? 1)redis使用了单线程架构和I/O多路复用模型 2)纯内存访问 3)单线程避免了线程上
阅读全文
摘要:一.什么是MySQL事务? start transaction 要执行的sql语句 commit 一个事务包含多个sql语句,事务保证这些sql语句要么都执行成功,要不都失败 二.事务四大特性 A - 原子性 C - 一致性 I - 隔离性 D - 持久性 三.事务特性的底层实现原理 1.原子性:
阅读全文