auto commit
This commit is contained in:
parent
1a1ba6c37e
commit
7b95416e65
|
@ -317,11 +317,11 @@ int dictRehash(dict *d, int n) {
|
||||||
|
|
||||||
跳跃表是基于多指针有序链表实现的,可以看成多个有序链表。
|
跳跃表是基于多指针有序链表实现的,可以看成多个有序链表。
|
||||||
|
|
||||||
<div align="center"> <img src="pics/beba612e-dc5b-4fc2-869d-0b23408ac90a.png"/> </div><br>
|
<div align="center"> <img src="pics/beba612e-dc5b-4fc2-869d-0b23408ac90a.png" width="600px"/> </div><br>
|
||||||
|
|
||||||
在查找时,从上层指针开始查找,找到对应的区间之后再到下一层去查找。下图演示了查找 22 的过程。
|
在查找时,从上层指针开始查找,找到对应的区间之后再到下一层去查找。下图演示了查找 22 的过程。
|
||||||
|
|
||||||
<div align="center"> <img src="pics/0ea37ee2-c224-4c79-b895-e131c6805c40.png"/> </div><br>
|
<div align="center"> <img src="pics/0ea37ee2-c224-4c79-b895-e131c6805c40.png" width="600px"/> </div><br>
|
||||||
|
|
||||||
与红黑树等平衡树相比,跳跃表具有以下优点:
|
与红黑树等平衡树相比,跳跃表具有以下优点:
|
||||||
|
|
||||||
|
@ -472,7 +472,7 @@ Redis 服务器是一个事件驱动程序。
|
||||||
|
|
||||||
Redis 基于 Reactor 模式开发了自己的网络事件处理器,使用 I/O 多路复用程序来同时监听多个套接字,并将到达的事件传送给文件事件分派器,分派器会根据套接字产生的事件类型调用相应的事件处理器。
|
Redis 基于 Reactor 模式开发了自己的网络事件处理器,使用 I/O 多路复用程序来同时监听多个套接字,并将到达的事件传送给文件事件分派器,分派器会根据套接字产生的事件类型调用相应的事件处理器。
|
||||||
|
|
||||||
<div align="center"> <img src="pics/9ea86eb5-000a-4281-b948-7b567bd6f1d8.png"/> </div><br>
|
<div align="center"> <img src="pics/9ea86eb5-000a-4281-b948-7b567bd6f1d8.png" width=""/> </div><br>
|
||||||
|
|
||||||
## 时间事件
|
## 时间事件
|
||||||
|
|
||||||
|
@ -525,7 +525,7 @@ def main():
|
||||||
|
|
||||||
从事件处理的角度来看,服务器运行流程如下:
|
从事件处理的角度来看,服务器运行流程如下:
|
||||||
|
|
||||||
<div align="center"> <img src="pics/c0a9fa91-da2e-4892-8c9f-80206a6f7047.png" width="400"/> </div><br>
|
<div align="center"> <img src="pics/c0a9fa91-da2e-4892-8c9f-80206a6f7047.png" width="350"/> </div><br>
|
||||||
|
|
||||||
# 十一、复制
|
# 十一、复制
|
||||||
|
|
||||||
|
|
BIN
docs/notes/pics/036c0e07-0725-4b3c-a684-ab3b16ca7b86.png
Normal file
BIN
docs/notes/pics/036c0e07-0725-4b3c-a684-ab3b16ca7b86.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
BIN
docs/notes/pics/16eea7d2-f5f5-4180-93be-dba7d4e48f5d.png
Normal file
BIN
docs/notes/pics/16eea7d2-f5f5-4180-93be-dba7d4e48f5d.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
BIN
docs/notes/pics/2c437953-08b1-47b9-a780-7dfdc90a3b6f.png
Normal file
BIN
docs/notes/pics/2c437953-08b1-47b9-a780-7dfdc90a3b6f.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
BIN
docs/notes/pics/bae98438-7db6-41a6-893e-8813248f2f92.jpg
Normal file
BIN
docs/notes/pics/bae98438-7db6-41a6-893e-8813248f2f92.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
BIN
docs/notes/pics/d5dfeb74-a27a-43b8-9121-191d3cb75198.png
Normal file
BIN
docs/notes/pics/d5dfeb74-a27a-43b8-9121-191d3cb75198.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
|
@ -47,7 +47,7 @@
|
||||||
|
|
||||||
事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。
|
事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。
|
||||||
|
|
||||||
<div align="center"> <img src="pics/185b9c49-4c13-4241-a848-fbff85c03a64.png" width="400"/> </div><br>
|
<div align="center"> <img src="pics/bae98438-7db6-41a6-893e-8813248f2f92.jpg" width="400"/> </div><br>
|
||||||
|
|
||||||
## ACID
|
## ACID
|
||||||
|
|
||||||
|
@ -94,25 +94,27 @@ MySQL 默认采用自动提交模式。也就是说,如果不显式使用`STAR
|
||||||
|
|
||||||
T<sub>1</sub> 和 T<sub>2</sub> 两个事务都对一个数据进行修改,T<sub>1</sub> 先修改,T<sub>2</sub> 随后修改,T<sub>2</sub> 的修改覆盖了 T<sub>1</sub> 的修改。
|
T<sub>1</sub> 和 T<sub>2</sub> 两个事务都对一个数据进行修改,T<sub>1</sub> 先修改,T<sub>2</sub> 随后修改,T<sub>2</sub> 的修改覆盖了 T<sub>1</sub> 的修改。
|
||||||
|
|
||||||
<div align="center"> <img src="pics/88ff46b3-028a-4dbb-a572-1f062b8b96d3.png" width="350"/> </div><br>
|
<div align="center"> <img src="pics/d5dfeb74-a27a-43b8-9121-191d3cb75198.png" width="350"/> </div><br>
|
||||||
|
|
||||||
## 读脏数据
|
## 读脏数据
|
||||||
|
|
||||||
T<sub>1</sub> 修改一个数据,T<sub>2</sub> 随后读取这个数据。如果 T<sub>1</sub> 撤销了这次修改,那么 T<sub>2</sub> 读取的数据是脏数据。
|
T<sub>1</sub> 修改一个数据,T<sub>2</sub> 随后读取这个数据。如果 T<sub>1</sub> 撤销了这次修改,那么 T<sub>2</sub> 读取的数据是脏数据。
|
||||||
|
|
||||||
<div align="center"> <img src="pics/dd782132-d830-4c55-9884-cfac0a541b8e.png" width="400"/> </div><br>
|
<div align="center"> <img src="pics/16eea7d2-f5f5-4180-93be-dba7d4e48f5d.png" width="400"/> </div><br>
|
||||||
|
|
||||||
## 不可重复读
|
## 不可重复读
|
||||||
|
|
||||||
T<sub>2</sub> 读取一个数据,T<sub>1</sub> 对该数据做了修改。如果 T<sub>2</sub> 再次读取这个数据,此时读取的结果和第一次读取的结果不同。
|
T<sub>2</sub> 读取一个数据,T<sub>1</sub> 对该数据做了修改。如果 T<sub>2</sub> 再次读取这个数据,此时读取的结果和第一次读取的结果不同。
|
||||||
|
|
||||||
<div align="center"> <img src="pics/c8d18ca9-0b09-441a-9a0c-fb063630d708.png" width="350"/> </div><br>
|
<div align="center"> <img src="pics/036c0e07-0725-4b3c-a684-ab3b16ca7b86.png" width="400"/> </div><br>
|
||||||
|
|
||||||
|
|
||||||
## 幻影读
|
## 幻影读
|
||||||
|
|
||||||
T<sub>1</sub> 读取某个范围的数据,T<sub>2</sub> 在这个范围内插入新的数据,T<sub>1</sub> 再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。
|
T<sub>1</sub> 读取某个范围的数据,T<sub>2</sub> 在这个范围内插入新的数据,T<sub>1</sub> 再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。
|
||||||
|
|
||||||
<div align="center"> <img src="pics/72fe492e-f1cb-4cfc-92f8-412fb3ae6fec.png" width="350"/> </div><br>
|
<div align="center"> <img src="pics/2c437953-08b1-47b9-a780-7dfdc90a3b6f.png" width="400"/> </div><br>
|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user