- 博客(51)
- 收藏
- 关注
原创 【git】误操作后怎么解决
可以精确地将某些 commit 应用到当前分支,适合你现在这种“挑干净提交”的场景;cherry-pick 时顺序很重要,按提交时间顺序来;分支提交历史,找到“正确”的 commit ID。记住你要保留的那些 commit 的 ID(比如。分支,cherry-pick 正确提交。:否则历史就乱了,建议保留。就是干净的分支,包含了。
2025-07-29 13:00:46
199
原创 【docker】将已有mysql脚本导入镜像内使用
将宿主机目录挂载到容器初始化目录(容器启动时会自动执行该目录下所有。:可选,创建默认数据库。
2025-07-24 11:02:47
267
1
原创 【golang】ants详解:提升高并发性能的利器
《高性能Golang协程池ants库详解》 摘要:ants是一个专为Golang设计的高性能协程池实现,通过复用goroutine有效降低创建销毁开销,提升并发处理能力。该库支持动态扩缩容、预分配机制、任务队列管理和panic自动恢复等核心功能,适用于高并发场景。文章详细介绍了ants的五大典型使用场景,包括基本使用、带返回值任务、动态调参、预分配和缓冲池等实现方式,并提供了丰富的配置选项和监控接口。通过合理配置池大小和任务队列参数,开发者可以在网络请求、IO操作等场景中实现性能优化。
2025-07-17 10:27:44
406
原创 【docker】将本地镜像打包部署到服务器上
本文介绍了将本地Docker镜像部署到生产服务器的完整流程:1)使用docker save命令打包镜像为tar文件;2)通过SCP传输镜像包到服务器;3)在服务器上使用docker load加载镜像;4)最后通过docker-compose启动容器服务。该方法简单高效,适合快速迁移容器化应用。
2025-07-16 18:19:08
870
原创 【Linux】如何使用nano创建并编辑一个文件
本文介绍了Linux系统中轻量级命令行文本编辑器Nano的使用方法。作为系统管理员常用的工具,Nano具有简单易学、启动快速、兼容性强等优势,80%的日常编辑工作都能胜任。与其他编辑器相比,Nano学习曲线平缓,适合快速编辑场景。文章详细说明了文件创建和编辑的基本操作:通过"nano 文件名"命令即可进入编辑界面,底部会显示常用快捷键提示,如Ctrl+T等组合键功能一目了然,无需鼠标即可完成文本编辑工作。
2025-07-16 18:17:41
316
原创 【kafka】消息模型与工作原理详解
Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,最初由 LinkedIn 公司开发,并于 2011 年开源。它以高吞吐量、可扩展性、持久性和容错性著称,被广泛应用于日志收集、消息系统、用户活动跟踪、运营指标监控、流式处理等场景。Kafka 能够处理海量数据,并使数据能够被多个消费者同时读取,在大数据生态系统中占据着重要地位。
2025-06-11 15:34:19
1062
原创 【kafka】rebalance机制详解
Kafka的Rebalance机制是消费者组实现负载均衡和容错的重要手段,但也会带来消息处理延迟和性能开销。通过合理设置消费者数量、选择合适的分区分配策略、调整消费者参数以及避免频繁的订阅变更,可以减少Rebalance的负面影响,提高Kafka消费者组的稳定性和性能。当消费者组内的消费者数量、订阅的主题分区数量或消费者的订阅关系发生变化时,Kafka会触发Rebalance,重新分配消费者与分区之间的对应关系,确保每个分区都能被一个消费者消费,且消费者之间的负载尽量均衡。
2025-06-11 14:22:39
1046
原创 【docker】安装和使用
简而言之,Docker 是一个可供开发者通过容器(container)来构建,运行和共享应用(application)的平台。用容器来部署应用被称为集装箱化docker简介镜像是一种轻量级、 可执行的独立软件包,来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。容器是打包代码及其所有依赖项的软件的标准单元,因此应用程序可以从一个计算环境快速可靠地运行到另一个计算环境。
2025-06-09 17:38:43
5082
原创 【masscan】端口扫描工具masscan常用方法和参数
Masscan是Robert David Graham开发的高性能开源端口扫描工具,采用异步I/O模型,理论扫描速度可达每秒1000万包,远胜传统工具。支持TCP/UDP/ICMP协议,可在几分钟完成全网扫描。特点包括:极速扫描、灵活配置(自定义端口/IP段/速率)、轻量高效。
2025-06-09 16:36:44
279
原创 【docker】容器技术如何改变软件开发与部署格局
Docker作为现代化容器技术,显著提升了软件开发和部署效率。本文探讨了Docker的起源、用途和优势:1)起源上,Docker受标准化集装箱启发,通过容器化解决了环境差异问题;2)用途方面,它提供统一运行环境、便捷迁移、加速开发测试流程及支持CI/CD;3)优势包括便携性、轻量级灵活性、良好扩展性、高效资源利用及丰富的镜像资源。Docker改变了传统应用部署方式,通过容器化技术实现"一次构建,随处运行",成为现代软件开发的重要工具。
2025-06-04 14:38:45
935
原创 【golang】能否在遍历map的同时删除元素
Go语言允许在迭代时删除当前元素,但不建议直接使用for k, v := range m进行删除。主要原因包括:1. 迭代变量重用问题,可能导致访问已删除数据或意外行为;2. 值拷贝的潜在问题,特别是当v是大型结构体时,会导致不必要的拷贝;3. 与map迭代器内部状态的交互,可能干扰迭代器的内部计数和状态;4. 代码可读性和维护性,使用for k := range m形式更清晰。安全实践建议:如果只需要键,使用for k := range m形式;如果需要值,先通过键访问;复杂条件考虑先收集键再批量删除。
2025-05-23 11:06:39
600
原创 【Kafka】编写消费者开发模式时遇到‘未解析的引用‘SIGUSR1’’
在编写消费者开发模式时,使用简单的consumer可能导致数据消费不全,建议使用ConsumerGroup。官方实例可参考Shopify/sarama。若遇到未解析的引用SIGUSR1,可在Go安装目录下的Go\src\syscall\types_windows.go文件中添加相关代码,定义SIGUSR1、SIGUSR2和SIGTSTP信号,并在signals数组中添加对应字符串。此外,需实现Kill函数以兼容Windows系统,类似于Linux的kill指令。
2025-05-23 10:41:10
621
原创 【golang】为什么协程开销小于线程
免去内核介入:用户态调度无特权级切换。轻量级上下文:仅保存必要寄存器,不涉及内存管理等内核状态。协作式调度:减少不必要的抢占和缓存失效。
2025-04-09 09:20:23
594
原创 【golang】逃逸分析
在 Go 语言中,逃逸分析是编译器的一种优化技术,用于决定变量是分配在栈上还是堆上。通过逃逸分析,Go 编译器可以减少不必要的堆分配,从而提高程序的性能。go buildGo 编译器提供了-gcflags标志,可以输出逃逸分析的结果。sgo run如果只想运行程序并查看逃逸分析结果,可以直接使用go runGo 提供了工具,可以更详细地分析编译过程。
2025-04-09 09:18:05
1113
原创 【golang】堆和栈的区别
堆和栈是两种不同的内存分配区域,它们在内存分配、生命周期、性能等方面存在显著差异。通过理解堆和栈的区别,开发者可以编写出更高效的 Go 程序。
2025-04-09 09:04:39
540
原创 【golang】单元测试,以及出现undefined时的解决方案
单元测试 要对某一方法进行测试时,例如如下这一简单减法函数,选中函数名后右键->转到->测试1)Empty test file就是一个空文件,我们可以自己写测试的逻辑但是直接点绿色箭头运行会出问题:找不到包。我们要在终端打开此目录,带上此次测试所包含的包。这样便可正常测试。go test -v [文件名]2).Test for function就会生成模板,他会自己定义一个test的结构体切片,然后我们在add test case
2024-12-02 20:09:16
807
原创 【Linux】设计文件系统(C实现)
定义结构体//最大文件数//权限int size;//大小//内容//创建时间//修改时间//最后一次访问时间} File;获取当前时间(在显示创建时间,修改时间和访问时间时使用,用于记录当前时间)//获取当前时间创建文件(创建时注意要赋权)printf("文件数量已达上限,无法创建新文件。\n");return;printf("请输入文件名: ");printf("请输入文件权限(八进制): ");i++) {printf("文件已存在。\n");return;
2024-12-02 14:30:50
933
原创 【linux】shell编程
系统变量:如$HOME$PWD$USER等,由系统定义。自定义变量$$:当前进程PID:最近一个后台进程PID:上一个命令的退出状态。
2024-09-21 22:31:18
1637
1
原创 【linux】nice命令
nice命令是Linux系统中用于调整进程优先级的工具,通过调整进程的优先级,可以影响进程在CPU上的资源分配和执行顺序。在使用nice命令时,应谨慎考虑系统的负载情况和进程的实际需求,以合理利用系统资源并优化系统性能。
2024-09-21 22:14:09
957
原创 【linux】kill命令
kill命令在 Linux 和类 Unix 系统中用于向进程发送信号,默认情况下是发送 SIGTERM(信号 15),请求程序终止运行。如果程序没有响应 SIGTERM 信号,可以使用 SIGKILL(信号 9)强制终止进程,但这种方式不会给进程提供清理资源的机会。
2024-09-21 22:09:17
938
原创 【linux】file命令
在Linux和Unix系统中,file命令是一个非常实用的工具,用于识别文件类型。它通过分析文件的内容或文件的元数据(如文件头信息),来猜测文件是什么类型的。这对于处理未知文件或验证文件类型非常有帮助。
2024-09-19 19:50:58
527
原创 【linux】df命令
df命令在 Linux 系统中用于显示磁盘空间的使用情况。它提供了文件系统中各个分区或挂载点的总空间、已用空间、剩余空间以及挂载点等信息。这对于监控和管理磁盘空间非常有用。
2024-09-19 19:45:49
479
原创 【linux】 date命令
date命令在 Linux 和类 Unix 系统中用于显示和设置系统的日期和时间。这个命令非常灵活,允许用户以不同的格式查看日期和时间,也可以用来设置新的日期和时间(虽然这需要管理员权限,通常是通过 sudo 或以 root 用户身份执行)。
2024-09-18 12:30:37
1621
原创 【linux】pwd命令
pwd命令在 Linux 和类 Unix 系统中用于显示当前工作目录的完整路径。它是 "print working directory" 的缩写。当你在终端或命令行界面中工作时,你可能会在不同的目录(或文件夹)之间切换。pwd命令帮助你确定你当前位于哪个目录。
2024-09-18 12:27:20
535
原创 【linux】 ls命令
ls命令是 Linux 和 Unix 系统中用于列出目录内容的命令。它显示指定目录下的文件和子目录列表。如果不指定目录,ls默认显示当前目录下的内容。
2024-09-17 12:02:49
807
原创 【linux】ln 命令
硬链接和软链接都是文件系统中的引用,但它们的工作方式和对文件系统的影响不同。硬链接直接指向文件的 inode,而软链接则包含另一个文件的路径。硬链接不能跨文件系统,不能链接目录,且删除最后一个硬链接会删除文件内容。软链接可以跨文件系统,可以链接目录,但如果目标文件或目录被移动或删除,软链接就会断开。
2024-09-17 12:00:25
507
原创 【linux】cp命令
cp命令在 Linux 系统中用于复制文件或目录。它是非常基础且常用的命令之一,允许用户将文件从一个位置复制到另一个位置,或者将目录及其内容复制到另一个位置。
2024-09-15 15:47:24
734
原创 【linux】chmod命令
chmod命令用于改变文件或目录的权限。权限定义了谁可以读取、写入或执行文件或目录。chmod命令通过修改文件或目录的权限位来工作,这些权限位定义了文件或目录的拥有者、组和其他用户的访问权限。
2024-09-15 15:44:18
590
原创 【linux】 cd命令
cd命令在 Linux 和 Unix 系统中用于改变当前工作目录(Current Directory)。它是命令行界面中非常基础且常用的命令之一,允许用户快速地在文件系统中导航。
2024-09-14 14:36:23
594
原创 【linux】cat 命令
cat命令是 Linux 和 Unix 系统中非常基础且常用的一个命令,它的全称是 "concatenate" 的缩写,意为“连接”或“串联”。尽管名字听起来像是专门用于连接文件的,但cat命令的用途远不止于此。它主要用于查看、创建、合并文件内容,以及将文件内容输出到标准输出设备(通常是屏幕)或另一个文件中。
2024-09-14 14:30:05
956
原创 【C#】字符串处理器
3.查找字符串中最长的单词,并显示其长度。1.定义StringProcessor类。4.将字符串中的所有单词首字母大写。5. 将字符串中的所有单词反转。2.统计字符串中单词的数量。
2024-06-19 15:52:03
842
原创 【C#】汽车租赁系统设计与实现
通过设计和实现一个简单的汽车租赁系统,掌握C#面向对象编程的基本知识,熟悉类和对象的使用、列表数据结构的操作,以及简单的命令行界面设计。以上就是完整的代码及实现。汽车租赁系统设计与实现。
2024-06-18 12:06:36
2283
原创 【C#项目】使用百度ai人脸库实现人脸识别
本项目利用百度AI的人脸识别技术,开发了一个可以进行人脸识别的应用程序。项目涉及网络连接、文件处理、图像处理、数据库管理及音视频处理等多个技术领域。本文将详细介绍项目的整体架构和实现过程。
2024-06-17 15:20:08
2403
原创 【C#】图形图像编程
关键点在于使用Bitmap对象作为绘图表面,从而保留之前的绘图内容。通过调用panel1.Invalidate方法触发重绘,并在Paint事件中绘制Bitmap对象,这样可以确保每次绘制新内容时,之前的内容不会被清除。在Panel的Paint事件中使用Graphics.DrawImage方法将Bitmap绘制到Panel上,以实现内容的保留和更新。2 .在设计界面中拉取两个button,一个textbox(用于输出自己想输出的内容(艺术字))以及一个panel(输出在panel上显示)
2024-06-15 21:31:38
2052
4
原创 【C#】线程设计3:threadpool
将任务排队到线程池中执行。这种方法可以有效利用系统资源,提高并发性能,但需要注意线程安全。: Windows Forms 控件不是线程安全的,因此在非UI线程上操作UI控件需要通过。: 为了实现按字符换行输出,需要遍历输入的字符串,逐个处理每个字符并添加到。中,同时每个字符后面加上换行符。方法,可以在需要时安全地更新。(1).控件:group。方法来切换到UI线程。: 封装一个线程安全的。
2024-06-06 14:51:50
549
原创 【C#】线程设计2:backgroundWorker
来处理后台操作,可以防止UI线程阻塞,并且能够安全地更新UI控件。事件处理程序中,将文本逐个字符添加到一个。中获取字符列表,并将每个字符逐个添加到。中,每个字符后面都添加换行符。(1).控件:group。
2024-06-06 14:47:20
482
原创 demo,bug,程序员口中的“常驻客”到底是什么意思
"demo"通常指的是"demonstration",即演示或展示的意思。在软件开发中,一个"demo"通常是指一个简单的、可展示的版本或样本,用来展示软件产品的某些特性或功能。这可以是一个演示性的原型、一个演示用的应用程序,或者一个演示性的功能模块。"demo"通常用于展示给客户、用户或其他利益相关者,以便演示软件的潜力和功能。如果你有做程序员的朋友,肯定能常听到他说demo和bug,到底是什么意思呢?bug一般是指程序的漏洞,而相应的debug就是找到漏洞。
2024-06-05 20:35:06
1299
原创 【算法】找到范围内素数:埃拉托斯特尼筛法(Sieve of Eratosthenes)
埃拉托斯特尼筛法(Sieve of Eratosthenes)用于找到小于n的所有素数(质数)
2024-06-05 12:39:43
401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人