Skip to content

Commit e5c1a27

Browse files
committed
Update Java Notes
1 parent ab7d20c commit e5c1a27

File tree

4 files changed

+467
-681
lines changed

4 files changed

+467
-681
lines changed

DB.md

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2189,7 +2189,7 @@ rollback segment 称为回滚段,每个回滚段中有 1024 个 undo log segme
21892189

21902190
持久性是指一个事务一旦被提交了,那么对数据库中数据的改变就是永久性的,接下来的其他操作或故障不应该对其有任何影响。
21912191

2192-
redo log,记录数据页的物理修改,而不是某一行或某几行的修改,用来恢复提交后的物理数据页,且只能恢复到最后一次提交的位置
2192+
redo log,记录**数据页的物理修改**,而不是某一行或某几行的修改,用来恢复提交后的物理数据页,且只能恢复到最后一次提交的位置
21932193

21942194
InnoDB 作为存储引擎,数据是存放在磁盘中,每次读写数据都需要磁盘 IO,效率会很低。InnoDB 提供了缓存 Buffer Pool,Buffer Pool 中包含了磁盘中部分数据页的映射,作为访问数据库的缓冲:
21952195

@@ -5455,7 +5455,7 @@ MySQL 的主从复制原理图:
54555455
主从复制需要三个线程:**master(binlog dump thread)、slave(I/O thread 、SQL thread)**
54565456

54575457
- binlog dump thread:在主库事务提交时,负责把数据变更作为事件 Events 记录在二进制日志文件 binlog 中,并通知 slave 有数据更新
5458-
- I/O thread:负责从主服务器上读取二进制日志,并将 binlog 日志内容依次写到 relay log 文件的最末端,并将新的 binlog 文件名和位置记录到 master-info 文件中,以便下一次读取master 端新 binlog 日志时能告诉 master 服务器从新 binlog 日志的指定文件及位置开始读取新的 binlog 日志内容
5458+
- I/O thread:负责从主服务器上拉取二进制日志,并将 binlog 日志内容依次写到 relay log 文件的最末端,并将新的 binlog 文件名和 offset 记录到 master-info 文件中,以便下一次读取master 端新 binlog 日志时能告诉 master 服务器从新 binlog 日志的指定文件及位置开始读取新的 binlog 日志内容
54595459
- SQL thread:监测本地 relay log中新增了日志内容,读取中继日志并重做其中的 SQL 语句
54605460
- 从库在 relay-log.info 中记录当前应用中继日志的文件名和位置点以便下一次数据复制
54615461

@@ -9621,7 +9621,9 @@ vfork(虚拟内存fork virtual memory fork):调用 vfork() 父进程被挂
96219621
96229622
### 基本操作
96239623
9624-
redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时按照添加顺序依次执行,中间不会被打断或者干扰
9624+
Redis 事务没有隔离级别的概念,Redis 单条命令式保存原子性的,但是事务不保证原子性
9625+
9626+
Redis 事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时按照添加顺序依次执行,中间不会被打断或者干扰
96259627
96269628
* 开启事务
96279629
@@ -9722,7 +9724,7 @@ Redis 分布式锁的基本使用
97229724
* 对于返回设置成功的,拥有控制权,进行下一步的具体业务操作
97239725
* 对于返回设置失败的,不具有控制权,排队或等待
97249726
9725-
* 操作完毕通过del操作释放锁
9727+
* 操作完毕通过 del 操作释放锁
97269728
97279729
```sh
97289730
del lock-key
@@ -9749,9 +9751,9 @@ Redis 分布式锁的基本使用
97499751
97509752
### 过期数据
97519753
9752-
Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态
9754+
Redis 是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过 TTL 指令获取其状态
97539755
9754-
TTL返回的值有三种情况:正数,-1,-2
9756+
TTL 返回的值有三种情况:正数,-1,-2
97559757
97569758
- 正数:代表该数据在内存中还能存活的时间
97579759
- -1:永久有效的数据
@@ -9803,7 +9805,7 @@ TTL返回的值有三种情况:正数,-1,-2
98039805
98049806
#### 惰性删除
98059807
9806-
数据到达过期时间,不做处理等下次访问该数据时,我们需要判断:
9808+
数据到达过期时间,不做处理等下次访问该数据时,我们需要判断:
98079809
98089810
* 如果未过期,返回数据
98099811
* 如果已过期,删除,返回不存在
@@ -9832,9 +9834,9 @@ TTL返回的值有三种情况:正数,-1,-2
98329834
98339835
- Redis启动服务器初始化时,读取配置 server.hz 的值,默认为10。执行指令可以查看:info server
98349836
9835-
- 每秒钟执行 server.hz 次 serverCron() --> databasesCron() --> activeExpireCycle()
9837+
- 每秒钟执行 server.hz 次 serverCron() databasesCron() activeExpireCycle()
98369838
9837-
- databasesCron()操作是轮询每个数据库
9839+
- databasesCron() 操作是轮询每个数据库
98389840
98399841
- activeExpireCycle() 对某个数据库中的每个 expires 进行检测,每次执行耗时:250ms/server.hz
98409842
@@ -9852,7 +9854,7 @@ TTL返回的值有三种情况:正数,-1,-2
98529854
98539855
定期删除特点:
98549856
9855-
- CPU性能占用设置有峰值,检测频度可自定义设置
9857+
- CPU 性能占用设置有峰值,检测频度可自定义设置
98569858
- 内存压力不是很大,长期占用内存的冷数据会被持续清理
98579859
- 周期性抽查存储空间(随机抽查,重点抽查)
98589860
@@ -10190,7 +10192,7 @@ TTL返回的值有三种情况:正数,-1,-2
1019010192
* 获取 master 平均每秒产生写命令数据总量 write_size_per_second
1019110193
* 最优复制缓冲区空间 = 2 * second * write_size_per_second
1019210194
10193-
3. master单机内存占用主机内存的比例不应过大,建议使用50%-70%的内存,留下30%-50%的内存用于执 行bgsave命令和创建复制缓冲区
10195+
3. master 单机内存占用主机内存的比例不应过大,建议使用 50%-70% 的内存,留下 30%-50% 的内存用于执行 bgsave 命令和创建复制缓冲区
1019410196
1019510197
* 数据同步阶段slave说明
1019610198
@@ -10243,14 +10245,14 @@ TTL返回的值有三种情况:正数,-1,-2
1024310245
* 复制偏移量:一个数字,描述复制缓冲区中的指令字节位置
1024410246
1024510247
- master复制偏移量:记录发送给所有slave的指令字节对应的位置(多个)
10246-
- slave复制偏移量:记录slave接收master发送过来的指令字节对应的位置(一个)
10248+
- slave复制偏移量:记录slave接收master发送过来的指令字节对应的位置(一个)
1024710249
1024810250
作用:同步信息,比对 master 与 slave 的差异,当 slave 断线后,恢复数据使用
10249-
10251+
1025010252
数据来源:
10251-
10253+
1025210254
- master 端:发送一次记录一次
10253-
- slave 端:接收一次记录一次
10255+
- slave 端:接收一次记录一次
1025410256
1025510257
**工作原理**
1025610258

0 commit comments

Comments
 (0)