「黑马 MySQL」一、锁
锁介绍 MySQL 中的锁,按照锁的粒度分为以下三类:
全局锁:锁定数据库中的所有表
表级锁:每次操作锁住整张表
行级锁:每次操作锁住对应的行数据
全局锁
全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续 DML 的写语句,DDL 语句…
「黑马 Redis 原理」一、数据结构
Redis 底层 C 语言 数据结构
动态字符串 SDS
Redis 并没有使用 C 语言的 String,因为它实际上是字符数组
例子:
char* s="hello" 为 {'h', 'e', 'l', 'l', 'o', '\0'}
所以 Redis…
「黑马 Redis 原理」二、网络模型
用户空间、内核空间 IO 模型
《UNIX 网络编程》 总结了五种 IO 模型
阻塞 IO / Blocking IO
非阻塞 IO / Nonblocking IO
IO 多路复用 / IO Multiplexing
信号驱动 IO / Signal Driven IO
异…
「黑马 Redis 原理」四、内存回收
内存回收 Redis 之所以性能强,最主要的原因就是基于内存存储,然而单节点的 Redis 其内存大小不宜过大,会影响持久化或主从同步性能
配置文件中可以设置 redis 最大内存 maxmemory <bytes> 如 maxmemory 1gb,当内存达到上限就无法继续存储数…

「黑马 Redis 原理」三、通信协议
RESP 协议 Redis 是一个 CS 架构的软件,通信一般分两步(不包括 pipeline 和 PubSub)
客户端 client 向服务端 server 发送一条命令
服务端解析并执行命令,返回响应结果给客户端
因此客户端发送命令的格式…
「黑马 Redis」二、最佳实践
多级缓存跳过 键值设计
优雅的 key 结构
Redis 的 Key 虽然可以自定义,但最好遵循下面的几个最佳实践约定:
遵循基本格式:[业务名称]:[数据名]:[id]
长度不超过 44 字节
不包含特殊字符
例如:我们的登录业务,保存用户信息,其 key 是这样的…