-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
565 lines (381 loc) · 39.2 KB
/
index.html
File metadata and controls
565 lines (381 loc) · 39.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
<!DOCTYPE html><html lang="zh-CN" data-theme="dark"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>YC's Blog</title><meta name="author" content="Ycccccc"><meta name="copyright" content="Ycccccc"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#0d0d0d"><meta name="description" content="Anything Is Possible">
<meta property="og:type" content="website">
<meta property="og:title" content="YC's Blog">
<meta property="og:url" content="https://kqlxk.github.io/index.html">
<meta property="og:site_name" content="YC's Blog">
<meta property="og:description" content="Anything Is Possible">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://kqlxk.github.io/img/mmexport1714538039776.png">
<meta property="article:author" content="Ycccccc">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://kqlxk.github.io/img/mmexport1714538039776.png"><link rel="shortcut icon" href="/img/mmexport1714538039776.png"><link rel="canonical" href="https://kqlxk.github.io/index.html"><link rel="preconnect"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css?v=4.13.0"><link rel="stylesheet" href="/pluginsSrc/@fortawesome/fontawesome-free/css/all.min.css?v=6.5.1"><link rel="stylesheet" href="/pluginsSrc/@fancyapps/ui/dist/fancybox/fancybox.css?v=5.0.33" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"/search.xml","preload":false,"top_n_per_article":1,"unescape":false,"languages":{"hits_empty":"找不到您查询的内容:${query}","hits_stats":"共找到 ${hits} 篇文章"}},
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '',
dateSuffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: undefined,
infinitegrid: {
js: '/pluginsSrc/@egjs/infinitegrid/dist/infinitegrid.min.js?v=4.11.1',
buttonText: '加载更多'
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'YC\'s Blog',
isPost: false,
isHome: true,
isHighlightShrink: false,
isToc: false,
postUpdate: '2025-06-20 13:18:47'
}</script><script>(win=>{
win.saveToLocal = {
set: (key, value, ttl) => {
if (ttl === 0) return
const now = Date.now()
const expiry = now + ttl * 86400000
const item = {
value,
expiry
}
localStorage.setItem(key, JSON.stringify(item))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = Date.now()
if (now > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = (url, attr = {}) => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
Object.keys(attr).forEach(key => {
script.setAttribute(key, attr[key])
})
document.head.appendChild(script)
})
win.getCSS = (url, id = false) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onerror = reject
link.onload = link.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
link.onload = link.onreadystatechange = null
resolve()
}
document.head.appendChild(link)
})
win.activateDarkMode = () => {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = () => {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><meta name="generator" content="Hexo 7.2.0"><link href="https://cdn.bootcss.com/KaTeX/0.11.1/katex.min.css" rel="stylesheet" /></head><body><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/mmexport1714538039776.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">50</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">25</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">21</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-book"></i><span> 文章</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></li><li><a class="site-page child" href="/todo/"><i class="fa-fw fas fa-list-alt"></i><span> ToDo</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/contact/"><i class="fa-fw fas fa-comments"></i><span> 留言板</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('/img/mmexport1714538039776.png')"><nav id="nav"><span id="blog-info"><a href="/" title="YC's Blog"><span class="site-name">YC's Blog</span></a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search" href="javascript:void(0);"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-book"></i><span> 文章</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></li><li><a class="site-page child" href="/todo/"><i class="fa-fw fas fa-list-alt"></i><span> ToDo</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/contact/"><i class="fa-fw fas fa-comments"></i><span> 留言板</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">YC's Blog</h1><div id="site_social_icons"><a class="social-icon" href="https://github.com/kqlxk" target="_blank" title="Github"><i class="fab fa-github" style="color: #24292e;"></i></a><a class="social-icon" href="/yuchao1726199979@163.com" target="_blank" title="Email"><i class="fas fa-envelope" style="color: #4a7dbe;"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2025/06/17/%E8%AE%A1%E7%BD%91-%E8%AE%A1%E7%BD%91%E6%9C%9F%E6%9C%AB%E5%A4%8D%E4%B9%A0/" title="[计网]计网期末复习">[计网]计网期末复习</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2025-06-17T10:27:50.000Z" title="发表于 2025-06-17 18:27:50">2025-06-17</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/">计算机网络</a></span></div><div class="content">应用层
作用:应用层对应用程序的通信进行服务
网络应用模型
C/S模型:客户端-服务器
B/S模型:浏览器-服务器
P2P模型:点对点
域名解析系统(DNS)
使用 53 端口
查询方式:递归查询和迭代查询,大部分情况下使用递归和迭代相结合的方式
文件传输协议(FTP)
FTP是基于 C/S 模型的协议
用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP协议提供服务,进行文件传输的计算机就是FTP服务器。连接FTP服务器的电脑就是FTP客户端
FTP使用 20 和 21 两个端口,20 端口用于传输控制信息,20 端口用于传输文件数据,如下图
FTP使用了两个并行的TCP连接,一个是控制连接,一个是数据连接。所以称FTP的控制信息是带外传送的。
FTP 客户在 21号端口与服务器连接, 使用TCP,client 再控制连接被授权client 通过控制连接浏览服务器目录。server 接到文件传输命令,打开 第二次TCP 连接,文件传输完毕后,关闭传输连接.
电子邮件(SMTP,POP3,IMAP)
SMTP
使用 25 端口
使用持久连接
SMT ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2025/02/01/kitex-%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/" title="[kitex]快速上手">[kitex]快速上手</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2025-02-01T10:41:18.000Z" title="发表于 2025-02-01 18:41:18">2025-02-01</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/kitex/">kitex</a></span></div><div class="content">RPC
什么是RPC
RPC(Remote Procedure Call,远程过程调用)通俗来讲就是调用远端服务的某个方法,并获取到对应的响应。其本质是一种调用方式,而实现技术没有约束,序列化消息内容可以通过 thrift/protobuf,网络通信可以使用 http/socket
RPC调用流程
分为服务端客户端两个部分
(客户端)构造请求参数,发起调用
(客户端)通过服务发现、负载均衡等得到服务端实例地址,并建立连接
(客户端)请求参数序列化成二进制数据
(客户端)通过网络将数据发送给服务端
(服务端)服务端接收数据
(服务端)反序列化出请求参数
(服务端)handler 处理请求并返回响应结果
(服务端)将响应结果序列化成二进制数据
(服务端)通过网络将数据返回给客户端
(客户端)接收数据
(客户端)反序列化出结果
(客户端)得到调用的结果
RPC开发流程
编写 IDL,定义服务 (Service) 接口。
使用 thrift(或者等价的生成代码工具,如 kitex 等)生成客户端、服务端的支持代码。
服务端开发者编写 handl ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/12/29/%E6%9C%9F%E6%9C%AB%E5%A4%8D%E4%B9%A0-%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F%E5%8E%9F%E7%90%86/" title="[期末复习]数据库系统原理">[期末复习]数据库系统原理</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-12-29T08:06:21.000Z" title="发表于 2024-12-29 16:06:21">2024-12-29</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%95%B0%E6%8D%AE%E5%BA%93/">数据库</a></span></div><div class="content">基本概念
DBS(数据库系统)
组成要素
首先看一下总体构成
硬件:大内存,大容量、直接存取的外存设备,作数据备份的磁带
软件:OS,DBMS,高级语言编译系统及其与数据库的接口,应用开发工具,应用系统
数据:目标数据(数据本身),描述数据(元数据,数据字典);示例:数据:图书馆中的书,元数据:标题,作者,关键字
用户:最终用户,应用程序员,系统分析员,数据库管理员(DBA)
特点
整体数据结构化:数据不属于任何应用,是公共的
数据共享性高:合法用户都可以使用数据
数据独立性高:数据与程序相互独立
高度的数据控制力:DBMS的管理
DBMS(数据库管理系统)
基本功能
数据定义(DDL):CREATE,ALTER,DROP
数据操纵(DML):SELECT,INSERT,UPDATE,DELETE
完整性约束检查:NOT NULL,CHECK,CONSTRAINT
访问控制(DCL):GRANT,REVOKE
并发控制
恢复功能
主要组成模块
查询处理器
存储管理器
事务管理器
DBA(数据库管理员)
职责:
用户在数据库开发人员之间沟通
参与数据库 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/12/28/Mysql-%E8%A7%86%E5%9B%BE%EF%BC%8C%E8%A7%A6%E5%8F%91%E5%99%A8%EF%BC%8C%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/" title="[Mysql]视图,触发器,存储过程">[Mysql]视图,触发器,存储过程</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-12-28T07:29:30.000Z" title="发表于 2024-12-28 15:29:30">2024-12-28</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Mysql/">Mysql</a></span></div><div class="content">注意:本文中使用的数据表及结构如下Employee (Eno, Ename, Sex, Age, Is_Marry, Title, Dno)
Item (Ino, Iname, Start_Date, End_Date, Outlay, Check_Date)
Item_Emp (Ino, Eno, IENo)
Salary (Eno, Basepay, Service, Price, Rest, Insure, Fund)
Department (Dno, Name, Phone, Manager)
视图(Views)
基本介绍
是什么:视图是一个虚表(有表的外形但是其中的数据是由SQL语句查询所得),用于更直观地把多张表中的相关数据合并到一起,方便查看
视图只需要保存查询的SQL逻辑,在每次使用试图时调用这个逻辑并将数据展现出来,不保存查询结果,所以在我们创建视图时,重点就在于这个查询语句
基本语法
创建
123CREATE VIEW <视图名> [<列名清单>] AS <子查询> [WITH CHECK OPTION]
说明:
若有&l ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/12/04/git-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/" title="CS疑难杂症">CS疑难杂症</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-12-04T06:25:19.000Z" title="发表于 2024-12-04 14:25:19">2024-12-04</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%BB%8F%E9%AA%8C/">经验</a></span></div><div class="content">本文旨在记录下学习计算机时碰到的所有疑难问题
git
unable to access …
问题
当我们使用git命令时,出现如图的报错
报错显示:连接github的443端口超时
错误原因
系统端口号与git端口号不一致
解决方案
未使用vpn时
12git config --global --unset http.proxygit config --global --unset https.proxy
使用了vpn
第一步:现在 系统设置-网络和internet-代理 中找到vpn使用的端口,如图
第二步:在git中设置本地代理
12git config --global http.proxy 127.0.0.1:<你的端口号>git config --global https.proxy 127.0.0.1:<你的端口号>
我的端口号是15715,则应输入
12git config --global http.proxy 127.0.0.1:15715git config --global https.proxy 127.0.0.1:15715 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/11/30/%E7%AC%AC%E5%85%AD%E5%B1%8A%E5%AD%97%E8%8A%82%E9%9D%92%E8%AE%AD%E8%90%A5-L12-%E8%B5%B0%E8%BF%9B%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/" title="[第六届字节青训营]L12-走进消息队列">[第六届字节青训营]L12-走进消息队列</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-11-30T07:56:52.000Z" title="发表于 2024-11-30 15:56:52">2024-11-30</time></span></div><div class="content">引子
四个案例
本地日志丢掉了,怎么办?
解决方案
前世今生
发展历程
业界对比
消息队列-Kafka
使用场景
如何使用 Kafka
基本概念
Offset
每个消息都有编号
Replica
复制多份副本,如果 Leader 所在的机器挂了,就在 ISR 中的副本重新选一个 Leader
数据复制
由 Controller 分配复制
Kafka 架构
一条消息的自述
思考
不能一个一个发,应该要一起发送
Producer
批量发送
数据压缩
最好的是 ZSTD
Broker
数据的存储
消息文件结构
磁盘结构
顺序写
如何找到消息
偏移量索引文件
时间戳索引文件
传统数据拷贝
零拷贝
Consumer
消息的接收端
Low Level 手动分配
优点:方便快捷
问题:
如果某个 Consumer 挂掉了,那它负责的那些 Partition 直接阻塞
如果某个 Consumer 能力不够,想其他 Consumer 来接替,必会出现机器的启停
High Level 自动分配
Consumer Rebala ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/11/26/docker-%E5%85%A5%E9%97%A8/" title="[docker]入门">[docker]入门</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-11-26T07:40:49.000Z" title="发表于 2024-11-26 15:40:49">2024-11-26</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/docker/">docker</a></span></div><div class="content">docker概述
docker是什么
docker是一个工具,用来帮助开发者打包,分发,运行应用程序
镜像和容器
当我们利用Docker安装应用时,docker会自动搜索并下载应用 镜像(image)。镜像不仅包含应用本身,还包含应用运行所需要的环境,配置,系统函数库。docker会在运行镜像时创建一个隔离环境,称为 容器(container)
镜像仓库:存储和管理镜像的平台,docker就是从这里下载的镜像,docker官方维护了一个公共仓库:Docker Hub
安装docker
对于windows家庭版,安装docker前需要先安装wsl
下载Docker Desktop,并安装
打开 docker-settings-general,在“use the wsl2 based engine”处打勾
打开 docker-settings-resources,选择在wsl中安装的linux发行版
通过使用 docker run hello-world 运行简单的内置Docker映像,测试安装是否正常工作
docker底层原理
docker是怎么工作的
Docker 是一个 Clie ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/11/25/%E7%AC%AC%E5%85%AD%E5%B1%8A%E5%AD%97%E8%8A%82%E9%9D%92%E8%AE%AD%E8%90%A5-L11-TOS%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8%E5%AE%9E%E6%88%98/" title="[第六届字节青训营]L11-TOS对象存储实战">[第六届字节青训营]L11-TOS对象存储实战</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-11-25T13:44:14.000Z" title="发表于 2024-11-25 21:44:14">2024-11-25</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%92%E8%AE%AD%E8%90%A5/">青训营</a></span></div><div class="content">抖音背后的存储
存储需求
经计算,小明发现需要的存储量很大
因此需要寻找合适存储
要求:易用,海量,便宜
为什么需要对象存储呢?
存储系统的分类
对比各类存储
分布式存储选型
易用性:接口对比
适用场景
对象存储怎么用
申请bucket
Restful接口
MultiUpload
Listprefix接口
TOS字节内部实践
(这是讲师18年来到字节后积累的经验)
开发一个对象存储
可扩展性之 Partition
持久度之 Replication
成本之 EC
(任何一块坏了,可以从其他块推导出这一块的内容)
成本之温热转换
架构细化
存储需求量细化
高可用之拆分
高可用之粤核酸的启发
高可用之镜像灾备
](https://image.nickxu.me/202206051045460.png)
未来展望
课后总结
</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/11/25/redis-%E5%85%A5%E9%97%A8/" title="[redis]入门">[redis]入门</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-11-25T12:55:31.000Z" title="发表于 2024-11-25 20:55:31">2024-11-25</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/redis/">redis</a></span></div><div class="content">Redis简介
Redis是一个高性能的非关系型数据库,将数据存在内存中,实现了高性能的读写
特点
支持数据持久化
提供多种数据结构的存储,如list,set,zset,hash
支持数据备份
优势
性能极高(主要)
丰富的数据类型
原子性
丰富的特性
与其他key-value存储的不同
Redis有着更为复杂的数据结构并且提供对他们的原子性操作
Redis是一个内存数据库,将数据存储在内存中
Redis通用命令
HELP:查看帮助
123456127.0.0.1:6379> helpredis-cli 3.0.504Type: "help @<group>" to get a list of commands in <group> "help <command>" for help on <command> "help <tab>" to get a list of possible help topics &qu ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/11/23/%E7%AC%AC%E5%85%AD%E5%B1%8A%E5%AD%97%E8%8A%82%E9%9D%92%E8%AE%AD%E8%90%A5-L10-Redis/" title="[第六届字节青训营]L10-Redis">[第六届字节青训营]L10-Redis</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-11-23T07:52:53.000Z" title="发表于 2024-11-23 15:52:53">2024-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9D%92%E8%AE%AD%E8%90%A5/">青训营</a></span></div><div class="content">什么是Redis
为什么需要Redis
随着数据量的增加,从一台mysql演化到了集群,但是在一些很复杂的技术场景里,mysql还是无法支持,由于mysql要从磁盘中读取数据,为了让数据查询更快,可以把数据存到内存里,redis应运而生
读取时先从redis中读,如果没有再去mysql读,然后再回写到redis中
回写时mysql产生binlog记录数据变更,使用架构解析binlog在写到redis中
redis基本原理
redis将数据存在内存中,但是也可以做到持久化
增量数据保存到AOF文件,全量数据RDB文件,实现持久化
redis单线程处理所有操作命令
Redis应用案例
连续签到
string数据结构
alloc:内存大小
len :实际使用的内存
消息通知
List数据结构Quicklist
一个节点中会存储很多数据
计数
Hash数据结构 - dict
排行榜
zset数据结构 - zskiplist
redis里跳表不超过4层
限流
分布式锁
Redis使用注意事项
大Key,热Key
定义
危害
解决方法
...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><span class="space">…</span><a class="page-number" href="/page/5/#content-inner">5</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/img/mmexport1714538039776.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">Ycccccc</div><div class="author-info__description">Anything Is Possible</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">50</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">25</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">21</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/xxxxxx"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/kqlxk" target="_blank" title="Github"><i class="fab fa-github" style="color: #24292e;"></i></a><a class="social-icon" href="/yuchao1726199979@163.com" target="_blank" title="Email"><i class="fas fa-envelope" style="color: #4a7dbe;"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2025/06/17/%E8%AE%A1%E7%BD%91-%E8%AE%A1%E7%BD%91%E6%9C%9F%E6%9C%AB%E5%A4%8D%E4%B9%A0/" title="[计网]计网期末复习">[计网]计网期末复习</a><time datetime="2025-06-17T10:27:50.000Z" title="发表于 2025-06-17 18:27:50">2025-06-17</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2025/02/01/kitex-%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/" title="[kitex]快速上手">[kitex]快速上手</a><time datetime="2025-02-01T10:41:18.000Z" title="发表于 2025-02-01 18:41:18">2025-02-01</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/12/29/%E6%9C%9F%E6%9C%AB%E5%A4%8D%E4%B9%A0-%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F%E5%8E%9F%E7%90%86/" title="[期末复习]数据库系统原理">[期末复习]数据库系统原理</a><time datetime="2024-12-29T08:06:21.000Z" title="发表于 2024-12-29 16:06:21">2024-12-29</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/12/28/Mysql-%E8%A7%86%E5%9B%BE%EF%BC%8C%E8%A7%A6%E5%8F%91%E5%99%A8%EF%BC%8C%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/" title="[Mysql]视图,触发器,存储过程">[Mysql]视图,触发器,存储过程</a><time datetime="2024-12-28T07:29:30.000Z" title="发表于 2024-12-28 15:29:30">2024-12-28</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/12/04/git-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/" title="CS疑难杂症">CS疑难杂症</a><time datetime="2024-12-04T06:25:19.000Z" title="发表于 2024-12-04 14:25:19">2024-12-04</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>分类</span>
<a class="card-more-btn" href="/categories/" title="查看更多">
<i class="fas fa-angle-right"></i></a>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Go/"><span class="card-category-list-name">Go</span><span class="card-category-list-count">9</span></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Go/Go%E5%9F%BA%E7%A1%80/"><span class="card-category-list-name">Go基础</span><span class="card-category-list-count">4</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Go/gin%E6%A1%86%E6%9E%B6/"><span class="card-category-list-name">gin框架</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Go/grpc/"><span class="card-category-list-name">grpc</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Go/web/"><span class="card-category-list-name">web</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Go/%E6%95%B0%E6%8D%AE%E5%BA%93/"><span class="card-category-list-name">数据库</span><span class="card-category-list-count">2</span></a></li></ul></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/JWT/"><span class="card-category-list-name">JWT</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Mysql/"><span class="card-category-list-name">Mysql</span><span class="card-category-list-count">8</span></a></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/git/" style="font-size: 1.1em; color: #999">git</a> <a href="/tags/%E7%BB%8F%E9%AA%8C/" style="font-size: 1.1em; color: #999">经验</a> <a href="/tags/rpc/" style="font-size: 1.1em; color: #999">rpc</a> <a href="/tags/HTML/" style="font-size: 1.1em; color: #999">HTML</a> <a href="/tags/%E5%89%8D%E7%AB%AF/" style="font-size: 1.26em; color: #999fa8">前端</a> <a href="/tags/%E5%A4%8D%E4%B9%A0/" style="font-size: 1.1em; color: #999">复习</a> <a href="/tags/GORM/" style="font-size: 1.1em; color: #999">GORM</a> <a href="/tags/kitex/" style="font-size: 1.1em; color: #999">kitex</a> <a href="/tags/grpc/" style="font-size: 1.1em; color: #999">grpc</a> <a href="/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/" style="font-size: 1.18em; color: #999ca1">计算机网络</a> <a href="/tags/%E6%9C%9F%E6%9C%AB%E5%A4%8D%E4%B9%A0/" style="font-size: 1.1em; color: #999">期末复习</a> <a href="/tags/JS/" style="font-size: 1.1em; color: #999">JS</a> <a href="/tags/gin%E6%A1%86%E6%9E%B6/" style="font-size: 1.1em; color: #999">gin框架</a> <a href="/tags/css/" style="font-size: 1.1em; color: #999">css</a> <a href="/tags/SQL/" style="font-size: 1.1em; color: #999">SQL</a> <a href="/tags/%E7%AC%AC%E4%B8%80%E7%AF%87%E5%8D%9A%E5%AE%A2/" style="font-size: 1.1em; color: #999">第一篇博客</a> <a href="/tags/%E9%9D%92%E8%AE%AD%E8%90%A5/" style="font-size: 1.5em; color: #99a9bf">青训营</a> <a href="/tags/docker/" style="font-size: 1.1em; color: #999">docker</a> <a href="/tags/c/" style="font-size: 1.34em; color: #99a3b0">c++</a> <a href="/tags/%E4%BB%A3%E7%A0%81%E9%9A%8F%E6%83%B3%E5%BD%95/" style="font-size: 1.1em; color: #999">代码随想录</a> <a href="/tags/JWT/" style="font-size: 1.1em; color: #999">JWT</a> <a href="/tags/Mysql/" style="font-size: 1.42em; color: #99a6b7">Mysql</a> <a href="/tags/Go/" style="font-size: 1.42em; color: #99a6b7">Go</a> <a href="/tags/redis/" style="font-size: 1.1em; color: #999">redis</a> <a href="/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 1.1em; color: #999">数据库</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/archives/" title="查看更多">
<i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2025/06/"><span class="card-archive-list-date">六月 2025</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2025/02/"><span class="card-archive-list-date">二月 2025</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/12/"><span class="card-archive-list-date">十二月 2024</span><span class="card-archive-list-count">3</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/11/"><span class="card-archive-list-date">十一月 2024</span><span class="card-archive-list-count">14</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/10/"><span class="card-archive-list-date">十月 2024</span><span class="card-archive-list-count">3</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/09/"><span class="card-archive-list-date">九月 2024</span><span class="card-archive-list-count">9</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/08/"><span class="card-archive-list-date">八月 2024</span><span class="card-archive-list-count">6</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/07/"><span class="card-archive-list-date">七月 2024</span><span class="card-archive-list-count">6</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">50</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2025-06-20T05:18:47.633Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer" style="background-image: url('/img/mmexport1714538039776.png')"><div id="footer-wrap"><div class="copyright">©2020 - 2025 By Ycccccc</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js?v=4.13.0"></script><script src="/js/main.js?v=4.13.0"></script><script src="/pluginsSrc/@fancyapps/ui/dist/fancybox/fancybox.umd.js?v=5.0.33"></script><div class="js-pjax"></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> 数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div><div id="local-search-stats-wrap"></div></div></div><div id="search-mask"></div><script src="/js/search/local-search.js?v=4.13.0"></script></div></div></body></html>