如果你已经能写 Go 的业务代码,却总在并发场景下心里没底——比如不知道为什么加了锁还是出问题、goroutine 一多内存就涨、GC 一停顿接口就抖——这门课正好卡在这个位置上。它的主线不是再教你写一遍语法,而是把 Go 的调度、内存分配、垃圾回收这几块底层机制拆开讲,再用「自己实现一个 Redis 中间件」当练习场,把机制落到能跑起来的代码上。
它解决的是哪类工作场景
日常写 CRUD 时,这些知识用不上;但一旦你接手的是网关、缓存代理、连接池、消息转发这类组件,问题就会集中爆发:并发量上来后延迟毛刺明显、内存占用只涨不降、排查问题时只能靠猜。课程把这些问题对应到具体的机制上——goroutine 怎么被调度、channel 和锁在什么情况下会成为瓶颈、堆内存怎么划分、哪些对象会被回收、GC 的停顿从哪来、又该从哪些角度去降低它的影响。学完之后,你至少能对着 pprof 和运行时指标说出「问题大概出在哪一层」,而不是盲目调参。
适合什么基础,先看哪几块
前提是你能独立写出可运行的 Go 程序,熟悉 struct、interface、goroutine 和 channel 的基本用法。如果这些还不熟,先补语言基础,直接看底层部分会变成背结论。有后端经验但没写过 Go 的人也可以跟,只是前期需要多花点时间适应语法和工具链。
建议的观看顺序:先跟并发与调度相关的部分,建立对 goroutine 生命周期的直觉;再进入内存模型与垃圾回收,重点看堆内存结构和 GC 效率优化那几节,这部分是整门课信息密度最高的地方;最后把 Redis 中间件的实战当作检验,边看边自己敲一遍。不要一上来就冲实战,否则你只是在抄代码,遇到报错也不知道为什么。
学完能独立做什么,资料怎么配合练习
比较现实的目标是:你能独立实现一个支持基本命令转发、连接管理、并发读写的 Redis 代理层,并且知道它的瓶颈可能在哪、怎么用压测和性能分析工具去验证。这不等同于能写一个生产级 Redis 替代品,协议兼容、持久化、集群这些都不在这门课的范围内,别抱过高预期。
资料以视频为主,配合讲解中的示例代码。练习方式建议是「看一节、关掉视频、自己实现一遍、再对照」。每学完一块底层机制,就回到中间件代码里找对应的位置,问自己这里为什么这么写、换一种写法会怎样。遇到 GC 和内存相关的章节,可以自己写小 demo 去触发和观察,比只看讲解记得牢。整套资料适合按顺序系统过一遍,也适合已经做过 Go 服务、只想补底层认知的人挑着看。
课程目录
{1}--课程 📁 {9}--第9章高并发下的内存模型与垃圾回收154 集
- 9.9]--9-9实战:如何优化GC效率?.mp4
- [85.2 MB] 9.6]--9-6GO的是如何分配堆内存的?.mp4
- [118.9 MB] 9.7]--9-7什么样对象需要垃圾回收?.mp4
- [66.7 MB] 9.8]--9-8如何减小GC对性能的影响?.mp4
- [42.8 MB] 9.5]--9-5GO的堆内存结构是怎样的?(3.mp4
- [101.6 MB] 9.4]--9-4GO的堆内存结构是怎样的?(2.mp4
- [134.3 MB] 9.3]--9-3GO的堆内存结构是怎样的?(1.mp4
- [131.4 MB] 9.2]--9-2协程栈不够用了怎么办?.mp4
- [76.6 MB] 9.1]--9-1为什么说Go的栈在堆上?.mp4
- [55.1 MB] 9.10]--9-12本章小结.mp4
- [35.7 MB] 9.1)--9-10本章作业.pdf
- [17.3 KB] {9}--第9章高并发下的内存模型与垃圾回收资料.png [493.5 KB] 9.2)--9-11面试题.pdf
- [62.9 KB] 📁 {8}--第8章高并发应用:TCP网络编程 8.9]--8-9Go是如何抽象Socket的?(三.mp4
- [62.4 MB] 8.7]--8-7Go是如何抽象Socket的?(一.mp4
- [121.0 MB] 8.8]--8-8Go是如何抽象Socket的?(二.mp4
- [68.0 MB] 8.6]--8-6NetworkPoller是如何工作的?(二.mp4
- [95.3 MB] 8.5]--8-5NetworkPoller是如何工作的?(一.mp4
- [87.7 MB] 8.3]--8-3Go是如何抽象Epoll的?(一.mp4
- [99.2 MB] 8.4]--8-4Go是如何抽象Epoll的?(二.mp4
- [65.4 MB] 8.2]--8-2什么是非阻塞IO?(二.mp4
- [39.1 MB] 8.1]--8-1什么是非阻塞IO?(一.mp4
- [36.8 MB] 8.11]--8-13本章小结.mp4
- [22.1 MB] 8.10]--8-10实战:怎样结合阻塞模型和多路复用?.mp4
- [58.3 MB] 8.2)--8-12面试题.pdf
- [53.1 KB] 8.1)--8-11本章作业.pdf
- [65.9 KB] 📁 {7}--第7章高并发下的通信方式:Channel管道 7.4]--7-4Channel接收数据的底层原理是什么?.mp4
- [91.2 MB] 7.6]--7-8本章小结.mp4
- [13.3 MB] 7.5]--7-5实战:非阻塞的Channel怎么做?.mp4
- [51.8 MB] 7.3]--7-3Channel发送数据的底层原理是什么?.mp4
- [106.2 MB] 7.2]--7-2如何设计高性能Channel?.mp4
- [85.8 MB] 7.1]--7-1为什么要用Channel,共享内存不好用吗?.mp4
- [72.2 MB] {7}--第7章高并发下的通信方式:Channel管道资料.png [493.5 KB] 7.2)--7-7面试题.pdf
- [57.3 KB] 7.1)--7-6本章作业.pdf
- [52.8 KB] 📁 {6}--第6章Go高并发下的锁 6.9]--6-9如何通过Wai.mp4
- [98.1 MB] 6.8]--6-8只让你看,不让你改,能实现吗?(三.mp4
- [46.5 MB] 6.7]--6-7只让你看,不让你改,能实现吗?(二.mp4
- [98.8 MB] 6.5]--6-5锁饥饿怎么办?.mp4
- [142.8 MB] 6.6]--6-6只让你看,不让你改,能实现吗?(一.mp4
- [77.0 MB] 6.4]--6-4互斥锁是如何工作的?.mp4
- [160.0 MB] 6.3]--6-3互斥锁解决了什么问题?.mp4
- [68.1 MB] 6.2]--6-2锁的基础是什么?(二.mp4
- [72.5 MB] 6.1]--6-1锁的基础是什么?(一.mp4
- [81.3 MB] 6.11]--6-11实战:如何排查锁异常问题.mp4
- [74.0 MB] 6.10]--6-10段代码只能执行一次,怎么实现?.mp4
- [61.7 MB] {6}--第6章Go高并发下的锁文档.png [493.5 KB] 6.2)--6-13面试题.pdf
- [49.6 KB] 6.1)--6-12本章作业.pdf
- [52.8 KB] 📁 {5}--第5章高并发的核心工具:Goroutine协程 5.9]--5-11本章小结.mp4
- [12.9 MB] 5.7]--5-7抢占式调度解决了什么问题?.mp4
- [88.2 MB] 5.8]--5-8实战--协程太多有什么问题?.mp4
- [49.3 MB] 5.5]--5-5为什么要有G-M-P调度模型?.mp4
- [125.8 MB] 5.6]--5-6如何实现协程并发?.mp4
- [107.8 MB] 5.3]--5-3协程是如何执行的?(一.mp4
- [90.8 MB] 5.4]--5-4协程是如何执行的?(二.mp4
- [17.0 MB] 5.2]--5-2协程的本质是什么?.mp4
- [75.8 MB] 5.1]--5-1为什么要有协程,线程不好用吗?.mp4
- [33.5 MB] 5.1)--5-9本章作业.pdf
- [154.1 KB] 5.2)--5-10面试题.pdf
- [45.7 KB] 📁 {4}--第4章Go在高并发下的数据结构 4.9]--4-9接口--隐式更好还是显式更好?(一.mp4
- [82.0 MB] 4.7]--4-7怎么解决map的并发问题?(一.mp4
- [101.4 MB] 4.8]--4-8怎么解决map的并发问题?(二.mp4
- [58.1 MB] 4.6]--4-6map为什么需要扩容?.mp4
- [78.6 MB] 4.5]--4-5map:重写Redis能用它吗?(二.mp4
- [56.0 MB] 4.4]--4-4map:重写Redis能用它吗?(一.mp4
- [129.8 MB] 4.2]--4-2数组,字符串,切片底层是一样的吗?(一.mp4
- [109.7 MB] 4.3]--4-3数组,字符串,切片底层是一样的吗?(二.mp4
- [93.8 MB] 4.1]--4-1什么变量的大小是0字节?.mp4
- [94.2 MB] 4.14]--4-16本章小结.mp4
- [16.6 MB] 4.13]--4-13实战:内存对齐是如何优化程序效率的?(二.mp4
- [98.2 MB] 4.12]--4-12实战:内存对齐是如何优化程序效率的?(一.mp4
- [57.2 MB] 4.11]--4-11nil,空接口,空结构体有什么区别?.mp4
- [76.4 MB] 4.10]--4-10接口--隐式更好还是显式更好?(二.mp4
- [56.0 MB] 4.2)--4-15面试题.pdf
- [46.9 KB] 4.1)--4-14本章作业.pdf
- [28.3 KB] 📁 {3}--第3章带你重新认识Go语言 3.5]--3-5Go语言是面向对象的吗?.mp4
- [65.5 MB] 3.6]--3-6实战:企业级Go项目包管理方法.mp4
- [92.2 MB] 3.4]--3-4Go程序是如何运行的?.mp4
- [103.0 MB] 3.3]--3-3Go程序是如何编译的?.mp4
- [98.3 MB] 3.2]--3-2何为Runtime?.mp4
- [22.6 MB] 3.1]--3-1为什么要用Go语言?.mp4
- [28.2 MB] {3}--第3章带你重新认识Go语言必看.png [493.5 KB] 3.2)--3-8本章作业.pdf
- [36.5 KB] 3.1)--3-7面试题.pdf
- [41.7 KB] 📁 {1}--第1章课程导学与学习指南 1.1)--1-1课前必读(不读错过一个亿.pdf
- [1.4 MB] 1.1]--1-2Go课程概览.mp4
- [55.5 MB] {1}--第1章课程导学与学习指南文档.png [493.5 KB] 📁 {2}--第2章Go的开发环境搭建与快速入门 2.1]--2-1快速搭建Go学习环境.mp4
- [80.3 MB] 2.3)--2-4GO语言快速入门练习.pdf
- [52.8 KB] 2.2)--2-3如何安装Go.pdf
- [136.4 KB] 2.1)--2-2GO语言超快速入门.pdf
- [142.1 KB] 📁 {16}--第16章回顾与总结 [16.1]--16-1一切才刚刚开始.mp4
- [135.8 MB] {16}--第16章回顾与总结说明.png [493.5 KB] 📁 {15}--第15章GO实现Redis集群 [15.9]--15-9实现defaultFunc.mp4
- [78.2 MB] [15.5]--15-5实现连接工厂.mp4
- [89.9 MB] [15.4]--15-4集群架构讲解.mp4
- [77.0 MB] [15.3]--15-3实现一致性哈希.mp4
- [80.6 MB] [15.2]--15-2定义NodeMap.mp4
- [60.5 MB] [15.11]--15-11完成ClusterDatabase.mp4
- [107.4 MB] 15.8]--15-8实现三种执行模式.mp4
- [83.3 MB] 15.7]--15-7操作连接池.mp4
- [120.8 MB] 15.6]--15-6初始化ClusterDatabase.mp4
- [93.2 MB] 15.10]--15-10实现特殊模式的指令.mp4
- [128.5 MB] 15.1]--15-1详解一致性哈希.mp4
- [28.5 MB] {15}--第15章GO实现Redis集群文档.png [493.5 KB] 📁 {14}--第14章GO实现Redis持久化 [14.8]--14-8实现Aof恢复(二).mp4
- [40.7 MB] [14.7]--14-7实现Aof恢复(一).mp4
- [81.3 MB] [14.6]--14-6debug闭包问题.mp4
- [61.5 MB] [14.4]--14-4实现Aof落盘功能(一).mp4
- [62.2 MB] [14.3]--14-3实现HandleAof.mp4
- [70.1 MB] 14.2]--14-2实现AddAof.mp4
- [92.8 MB] 14.5]--14-5实现Aof落盘功能(二.mp4
- [36.4 MB] {14}--第14章GO实现Redis持久化资料.png [493.5 KB] 📁 {13}--第13章GO实现内存数据库 [13.9]--13-9实现KEYS命令集(二).mp4
- [85.3 MB] [13.5]--13-5实现DB.Exec.mp4
- [71.3 MB] [13.4]--13-4定义command结构体.mp4
- [54.7 MB] [13.3]--13-3实现SyncDict(二).mp4
- [57.9 MB] [13.2]--13-2实现SyncDict(一).mp4
- [60.8 MB] [13.13]--13-13实现核心Database(一).mp4
- [95.6 MB] [13.1]--13-1定义Dict接口(加片头).mp4
- [50.4 MB] [13.11]--13-11实现STRING命令集(一).mp4
- [71.5 MB] [13.10]--13-10实现KEYS命令集(三).mp4
- [34.5 MB] 13.8]--13-8实现KEYS命令集(一.mp4
- [75.8 MB] 13.6]--13-6完成db.go.mp4
- [105.1 MB] 13.7]--13-7实现PING命令.mp4
- [18.8 MB] 13.14]--13-14实现核心Database(二.mp4
- [83.1 MB] 13.12]--13-12实现STRING命令集(二.mp4
- [40.3 MB] {13}--第13章GO实现内存数据库必看.png [493.5 KB] 📁 {12}--第12章GO实现Redis协议解析器 [12.9]--12-9实现ParseSingleLine.mp4
- [40.4 MB] [12.7]--12-7实现ParseMultiBulkHeader.mp4
- [53.0 MB] [12.6]--12-6实现ReadLine.mp4
- [81.4 MB] [12.4]--12-4实现自定义reply.mp4
- [86.9 MB] [12.3]--12-3实现errorreply.mp4
- [52.3 MB] [12.16]--12-16实现EchoDatabase.mp4
- [49.2 MB] [12.17]--12-17测试RESP协议解析.mp4
- [22.0 MB] [12.15]--12-15实现RespHandler(2).mp4
- [73.6 MB] [12.14]--12-14实现RespHandler(1).mp4
- [47.0 MB] [12.13]--12-13实现Connection.mp4
- [57.1 MB] 12.5]--12-5实现ParseStream.mp4
- [60.3 MB] [12.10]--12-10实现readBody.mp4
- [40.9 MB] 12.2]--12-2实现constreply.mp4
- [84.8 MB] 12.1]--12-1Redis网络协议详解.mp4
- [32.1 MB] 12.12]--12-12实现parser(2.mp4
- [81.7 MB] 12.11]--12-11实现parser(1.mp4
- [74.1 MB] {12}--第12章GO实现Redis协议解析器文档.zip
- [1.8 MB] 📁 {11}--第11章GO实现TCP服务器 11.5]--11-5测试TCP服务器.mp4
- [43.3 MB] 11.4]--11-4实现EchoHandler(二.mp4
- [67.4 MB] 11.3]--11-3实现EchoHandler(一.mp4
- [73.5 MB] 11.2]--11-2实现完善的TCP服务器.mp4
- [87.7 MB] 11.1]--11-1实现最简TCP服务器.mp4
- [91.2 MB] {11}--第11章GO实现TCP服务器文档.zip
- [1.8 MB] 📁 {10}--第10章Go的其他高级特性 10.6]--10-8本章小结.mp4
- [13.2 MB] 10.4]--10-4GO是怎么实现反射的?.mp4
- [83.7 MB] 10.5]--10-5实战:使用反射调用方法.mp4
- [52.2 MB] 10.3]--10-3recover如何在panic中拯救程序?.mp4
- [54.4 MB] 10.2]--10-2defer的底层原理是怎样的?.mp4
- [44.5 MB] 10.1]--10-1如何实现GO调用C代码?.mp4
- [63.2 MB] 10.1)--10-6作业:如何使用修改后的runtime源码.pdf
- [283.4 KB] 10.2)--10-7面试题.pdf
- [51.0 KB] {10}--第10章Go的其他高级特性文档.png [493.5 KB] 课件.zip
- [44.1 MB] {1}--课程说明.zip
- [1.8 MB] 适合人群 Go语言开发者 后端工程师 系统架构师 学习收获 掌握Go语言并发编程 优化系统性能 提升Redis中间件开发能力 祝您学习愉快! 学有所成,前程似锦!



![大疆维修,无人机维修教程[66.30GB]](/_next/image?url=%2Fapi%2Fuploads%2Fb6a69810-862f-479c-a529-d66880073ebc.jpg&w=1920&q=75)


