From 7b95416e656e388e6abf313200bf11f885f71a32 Mon Sep 17 00:00:00 2001
From: CyC2018 <1029579233@qq.com>
Date: Sun, 30 Dec 2018 22:20:35 +0800
Subject: [PATCH] auto commit
---
docs/notes/Redis.md | 8 ++++----
.../036c0e07-0725-4b3c-a684-ab3b16ca7b86.png | Bin 0 -> 35840 bytes
.../16eea7d2-f5f5-4180-93be-dba7d4e48f5d.png | Bin 0 -> 35840 bytes
.../2c437953-08b1-47b9-a780-7dfdc90a3b6f.png | Bin 0 -> 32768 bytes
.../bae98438-7db6-41a6-893e-8813248f2f92.jpg | Bin 0 -> 32768 bytes
.../d5dfeb74-a27a-43b8-9121-191d3cb75198.png | Bin 0 -> 30720 bytes
docs/notes/数据库系统原理.md | 12 +++++++-----
7 files changed, 11 insertions(+), 9 deletions(-)
create mode 100644 docs/notes/pics/036c0e07-0725-4b3c-a684-ab3b16ca7b86.png
create mode 100644 docs/notes/pics/16eea7d2-f5f5-4180-93be-dba7d4e48f5d.png
create mode 100644 docs/notes/pics/2c437953-08b1-47b9-a780-7dfdc90a3b6f.png
create mode 100644 docs/notes/pics/bae98438-7db6-41a6-893e-8813248f2f92.jpg
create mode 100644 docs/notes/pics/d5dfeb74-a27a-43b8-9121-191d3cb75198.png
diff --git a/docs/notes/Redis.md b/docs/notes/Redis.md
index 686f6ec9..4b5b5e4a 100644
--- a/docs/notes/Redis.md
+++ b/docs/notes/Redis.md
@@ -317,11 +317,11 @@ int dictRehash(dict *d, int n) {
跳跃表是基于多指针有序链表实现的,可以看成多个有序链表。
-
+
在查找时,从上层指针开始查找,找到对应的区间之后再到下一层去查找。下图演示了查找 22 的过程。
-
+
与红黑树等平衡树相比,跳跃表具有以下优点:
@@ -472,7 +472,7 @@ Redis 服务器是一个事件驱动程序。
Redis 基于 Reactor 模式开发了自己的网络事件处理器,使用 I/O 多路复用程序来同时监听多个套接字,并将到达的事件传送给文件事件分派器,分派器会根据套接字产生的事件类型调用相应的事件处理器。
-
+
## 时间事件
@@ -525,7 +525,7 @@ def main():
从事件处理的角度来看,服务器运行流程如下:
-
+
# 十一、复制
diff --git a/docs/notes/pics/036c0e07-0725-4b3c-a684-ab3b16ca7b86.png b/docs/notes/pics/036c0e07-0725-4b3c-a684-ab3b16ca7b86.png
new file mode 100644
index 0000000000000000000000000000000000000000..fbc8ce0b23d9dd25cd1261013321d3eb08195f74
GIT binary patch
literal 35840
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
3+CAkhQ?AJXIRv_`q{836~Gm
zt1&o7`^m@<-e5HP>#zxiiyj&uJ%1b-brV`oFMp(cMs`u0>UfcAEwcpA9>N(^lC|PN
zl}uXSH9hgC_YK_ysCerrcGs}Xm@234E9|~}a`k(sUV7}J{pc>p_@cj%U=UyUbf1Ih
zn_@2|Nt{#*v#2@h(H@y`U!SvA?#kCFCt_+8C384nA?hIU94eguUUkoZ?gPK(xv{iO
Zp6r@i7&*5;7mkHex`dX`lfCBmzW}TWT;Koz
literal 0
HcmV?d00001
diff --git a/docs/notes/pics/16eea7d2-f5f5-4180-93be-dba7d4e48f5d.png b/docs/notes/pics/16eea7d2-f5f5-4180-93be-dba7d4e48f5d.png
new file mode 100644
index 0000000000000000000000000000000000000000..2168c77d475e03ae2ce94303ddd0e53c2cdd5581
GIT binary patch
literal 35840
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