- 博客(149)
- 收藏
- 关注
原创 运维必会的awk、sed、hea、tail的用法
本文介绍了四个常用 Linux 文本处理工具:awk 擅长按列处理,可筛选、格式化输出;sed 适合按行替换、删除内容;head 和 tail 分别用于查看文件首尾内容,其中 tail -f 可实时追踪日志。这些工具组合使用能高效完成文本分析、日志处理等任务。文章通过示例说明了基本用法,并对比了各工具的核心功能。
2025-07-18 13:51:36
405
原创 如何反击面试官质疑你只是一个CRUD的程序员
面试时如何应对"增删查改"项目质疑? 当面试官质疑项目仅为简单CRUD时,可分三步回应: 1️⃣ 肯定基础功能:承认常规模块存在,随即转向技术深度; 2️⃣ 突出技术亮点:重点说明性能优化(如缓存设计、并发方案)、可扩展架构(微服务/设计模式)或业务复杂性解决方案; 3️⃣ 量化成果:用提升百分比、成本节约等数据佐证价值。 关键策略:将功能实现转化为问题解决能力的展示,例如:"通过Redis分布式锁解决库存超卖,而非简单数据库操作"。避免功能罗列,强调架构思维与技术决
2025-05-30 16:08:01
423
原创 掌握聚合函数:COUNT,MAX,MIN,SUM,AVG,GROUP BY和HAVING子句的用法,Where和HAVING的区别
Java后端开发必须掌握SQL聚合函数和分组查询。常用聚合函数包括COUNT(统计记录)、MAX/MIN(极值)、SUM(求和)、AVG(平均值)。GROUP BY子句用于按字段分组统计,HAVING则对分组后的聚合结果进行筛选。与WHERE不同,HAVING在分组后执行且支持聚合函数。例如查询部门平均薪资大于7000的记录:先GROUP BY分组计算AVG(salary),再用HAVING过滤结果。掌握这些语法对处理统计类SQL查询至关重要。
2025-05-25 22:02:13
590
原创 互联网大厂测试开发需要具备怎样的专业技能/技术栈
大厂测开岗位核心要求:需兼具测试思维与开发能力,掌握Python/Java编程基础及算法,熟练Selenium/Appium/JMeter等自动化工具,具备接口/性能/安全测试经验。熟悉SQL/NoSQL数据库及CI/CD流程,加分项包括微服务、云原生技术。面试重点考察算法、项目设计及工程化解决方案,强调通过代码提升测试效率和质量保障能力。竞争力在于将测试痛点转化为自动化方案,并持续跟进AI测试等新技术方向。建议从接口自动化切入,逐步深入性能优化与框架开发。
2025-05-24 14:28:50
1130
原创 Ubuntu离线安装Minio
本文详细介绍了在 Linux 环境下离线安装 MinIO 服务端的步骤。首先,在联网机器上下载 MinIO 可执行文件,并将其拷贝到目标离线服务器的指定目录。接着,创建数据目录并赋予相应权限。然后,通过命令行启动 MinIO 服务,并设置默认端口和管理控制台地址。此外,还提供了通过 systemd 服务实现 MinIO 自启动的配置方法,并建议设置访问密钥以提高安全性。最后,提醒用户注意防火墙设置和生产环境的安全措施。该教程适用于内网或无法联网的服务器环境。
2025-05-15 19:02:53
1121
原创 Redis常见面试题——List对象
Redis 的 List 是双向链表(早期直接是quicklist之前是ziplist或linkedlist小数据量时(元素少、元素小):使用压缩列表(ziplist)节省空间。大数据量时(元素多、元素大):使用quicklist,本质是多个 ziplist 组成的双向链表。✅quicklist = 多个 ziplist + 双向链表指针连接知道底层(quicklist)熟悉常用命令和复杂度掌握应用场景(队列、阻塞)了解优化点(空间、速度)
2025-04-26 16:36:54
857
原创 Redis的ZSet对象底层原理——跳表
跳表是一种有序链表的升级版,通过引入多级“索引层”来加快查找效率。优点缺点实现简单、性能稳定占用内存较多支持快速范围查找查询时间有轻微波动非常适合缓存、有序集合不如 B 树适合磁盘存储。
2025-04-26 10:29:29
797
原创 谈谈接口和抽象类有什么区别?
抽象类像模板,可以提供一部分默认实现;接口像协议,只规定规则,不管怎么实现;想让一个类**“拥有某种能力”**,用接口;想让一个类**“继承某种通用结构”**,用抽象类。
2025-04-25 21:13:34
517
原创 Redis高频面试题——String对象
intsdshdrsds是 Redis 自定义的一种动态字符串类型,它的底层是一个结构体叫sdshdr。这个结构不仅存储了字符串的内容,还保存了字符串的长度和分配空间等元信息。
2025-04-25 14:23:25
1049
原创 Redis面试必会:SETNX key value和 SET key value NX区别
特性SETNX是否原子是是支持设置过期时间❌ 不支持✅ 支持 EX / PX适合加锁可以,但需配合EXPIRE更推荐返回值1 或 0OK 或 nil推荐场景非过期操作、兼容老 Redis 版本✅ 推荐用于分布式锁等场景。
2025-04-25 11:10:34
578
原创 测试开发岗位——面试前必看好文
测试开发岗位(Test Development / SDET)对 Python 要求比较全面,不仅考察语言本身,还会涉及自动化测试、接口测试、性能测试、CI/CD、测试框架设计、Linux 基础、以及 DevOps 等方向。
2025-04-15 12:22:40
928
原创 Redis高频面试题(含答案)
当然可以,Redis 是面试中非常常见的高频考点,尤其在后台开发、分布式系统、缓存设计等方向,面试官常常通过 Redis 来考察你的。
2025-04-15 00:11:02
1281
原创 腾讯Java岗实习一面——线程和进程之间资源共享情况,docker进程隔离是怎么实现的
进程(Process):操作系统资源分配的最小单位。线程(Thread):CPU 调度的最小单位,是进程内的执行单元。同一进程下的多个线程:共享内存和文件资源,但每个线程都有自己的栈和执行流。而不同进程之间,默认是完全隔离的,除非使用进程间通信(IPC)机制。Docker 的进程隔离是通过Linux 的 Namespaces 实现“看不见彼此”,通过 Cgroups 实现“抢不到资源”,再配合文件系统隔离和安全机制,构建了一个像“轻量级虚拟机”的容器环境。
2025-04-07 16:05:09
820
原创 linux如何查看当前系统的资源占用情况
使用free和top查看内存和 CPU 使用情况。使用df和iostat查看磁盘的使用情况。使用ps查看进程占用情况。使用netstat查看网络连接情况。使用vmstat查看系统的整体状态。你可以根据具体需求选择使用上述命令来查看系统的资源占用情况。如果有任何其他问题,随时告诉我!
2025-04-06 16:47:28
1097
原创 LeetCode刷题常见的Java排序
你所提供的字符串排序技巧实际上是一种自定义排序规则的实现。在不同的数据类型中,类似的技巧可以用来进行排序,特别是当排序需求复杂或者涉及多个条件时,使用 Comparator或 Comparable接口来控制排序行为非常重要。字符串排序:按字母表排序(忽略大小写)。数字排序:整数、浮动类型按升序或降序排序。对象排序:可以按多个字段、多个条件进行排序。稳定排序:确保排序后相等元素的顺序保持不变。自定义排序:例如按特定位置的字符或元素进行排序。
2025-04-05 22:34:44
619
原创 记录解决K3s的Pod之间通信问题
使用 K3s 的 Pod CIDR,而不是。作为 Pod CIDR,这导致。,那就说明你的 K3s 默认使用。,但你的 K3s 可能使用了。应该就能正确运行了。作为 Pod 网络,而。配置的 CIDR 是。
2025-03-21 09:35:35
936
原创 pdsh配置
如果这样可以执行,说明主机名解析有问题,可以手动修改。如果不需要输入密码,说明免密登录配置成功。,说明免密登录未配置,继续下一步。可用,再尝试分布式训练。然后保存并退出,重新。如果所有服务器都返回。
2025-03-19 10:38:23
423
原创 deepSpeed多机多卡训练服务器之间,和服务器内两个GPU是怎么通信
DeepSpeed 在多机多卡训练时,主要依赖NCCL和PyTorch Distributed进行通信。
2025-03-19 08:54:29
1348
原创 DeepSpeed多机多卡微调笔记
你现在的目标是在三台服务器上使用 DeepSpeed 进行多机多卡的 BERT 微调。你已经有了模型和数据,接下来的步骤包括配置 DeepSpeed 环境、设置分布式训练、启动多机训练任务。这样,你就可以在三台服务器上顺利进行 BERT 多机多卡微调了!进行多机多卡训练,需要所有服务器之间能够无密码 SSH 登录。如果 NCCL 通信正常,就可以继续。DeepSpeed 训练时,可以使用。进行测试,确保可以无密码登录。如果你的模型比较大,可以尝试。进行多机通信,建议安装。如果被占用,换一个端口。
2025-03-19 08:46:46
1753
原创 如何优化 TCP/IP 的 NCCL 通信
数据传输几乎不占用 CPU,而 TCP/IP 需要 CPU 处理网络协议栈,造成额外的开销。如果你打算长时间运行分布式训练,建议考虑上。,能大幅提高 NCCL 通信效率。InfiniBand 使用。
2025-03-17 10:28:44
1383
原创 刷字符串的题使用正则表达式事半功倍?以及还有哪些必须掌握的java正则匹配
程序中的正则表达式"^0+(?!$)"用于去除字符串s开头的零。0+0!$)"0"所以,的作用是将输入字符串开头的零去掉,但如果整个字符串只由零组成(如"000"),它会保留零。
2025-02-17 12:04:22
428
原创 在 WSL上的 Ubuntu 中通过 Docker 来运行 Redis,并在微服务项目中使用redis
通过在 WSL(Windows Subsystem for Linux)上的 Ubuntu 虚拟机中通过 Docker 来运行 Redis,然后再微服务项目中使用redis以下是步骤:首先,确保你已经在 WSL 的 Ubuntu 中安装了 Docker。如果没有安装,可以按照以下步骤操作:然后启动并确保 Docker 自动开机启动:如果你遇到权限问题,可以将当前用户加入 Docker 组:然后退出当前会话,重新登录,或者使用 来立即生效。确保 Docker 已经正确安装并启动后,你可以通过以下命令来
2025-02-16 21:47:54
865
原创 nacos学习笔记
Nacos 是一个功能丰富、易于使用的服务发现和配置管理平台,特别适用于微服务架构和云原生环境。它不仅支持服务注册与发现,还提供强大的配置管理和服务治理能力,帮助开发者更加高效地管理分布式应用。如果你有其他特定的使用场景或技术问题,欢迎继续提问!
2025-02-16 11:15:28
875
原创 在SpringBoot项目中有k8s配置,但报错
如下报错一般是你没有将k8s的config拷贝到项目里,你可以将k8s主节点的config拷贝一下到项目中。
2025-02-13 09:37:47
669
原创 详细介绍docker的network
网络模式适用场景Bridge默认网络,适用于大多数 Docker 应用Host高性能网络应用,容器与宿主机共享网络None完全隔离,不需要网络的场景Container共享另一个容器的网络,Sidecar 模式Macvlan需要直接连接物理网络,如 IoT、嵌入式设备Docker 提供了强大的网络功能,适用于各种不同的业务场景。在生产环境中,结合或Kubernetes,可以构建更加复杂的网络拓扑,提升容器间的通信能力和安全性。
2025-02-07 11:16:20
1763
原创 前后端通过docker部署笔记
相关的设置,适用于启用了 SELinux(如 CentOS、RHEL)的环境。如果你有更具体的问题,欢迎继续讨论!下面详细解析各个参数的作用,以及。镜像,并通过数据卷 (,避免不必要的权限修改。
2025-02-06 11:34:54
1024
原创 Docker 挂载数据卷的好处与必要性
Docker 容器的存储默认是临时的,容器被删除后,内部的数据也会随之丢失。因此,在生产环境和开发过程中,这样 MySQL 直接操作宿主机文件系统,提高 IO 性能。这样 Nginx 可以读取配置文件,但无法修改,提高安全性。下面从多个方面详细分析挂载数据卷的。,只有在特殊场景(如访问特定宿主机目录)时,才使用。仍然存在,新的 MySQL 容器可以重新使用它。因此,在实际开发和生产环境中,合理使用。是非常必要的,能够极大提高系统的。目录下的数据,实现数据共享。
2025-02-06 11:12:57
1237
原创 Docker 数据卷(Volume)详细介绍
由于容器的存储是临时的,容器删除后其中的数据会丢失,因此使用数据卷可以保证数据不会随着容器的销毁而丢失。:Bind Mount 依赖于宿主机的路径,可能会导致跨平台兼容性问题。这个命令会删除所有没有被任何容器使用的 Docker 数据卷。的关键工具,合理使用可以大大提高数据管理的灵活性和安全性。注意:如果某个容器正在使用该数据卷,删除会失败。删除所有未被任何容器使用的 Docker 数据卷。的数据卷,并由 Docker 管理。列出当前所有的 Docker 数据卷。目录下的内容,但不能修改。
2025-02-06 11:12:09
2903
原创 安装hami的笔记
我们的k3s的版本会有个 +k3s2s在版本后面,2.4.x chart没有考虑这个,直接读出来拼接了做了image name,但是+号不允许在image name里面,就报了 InvalidImageName错,这是装2.4.x的schedduler出现异常的原因。无法解析图像名称\“ consistry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.31.2+k3s1 \”服务器版本:V1.31.2+K3S1。
2025-02-03 19:22:58
942
2
原创 docker推送本地仓库报错
确保目标服务器上的 Docker Registry 服务正常运行。检查防火墙设置,确保 5000 端口可访问。确认目标机器上的 Docker 服务正常运行。测试 Docker Registry 服务的可用性(使用curl或其他工具)。确保推送命令格式正确并且镜像标签已经设置正确。通过这些步骤,你应该能够解决的问题。
2025-01-09 20:12:48
937
原创 统计项目代码行数的实用工具cloc,简单易上手
macOS:推荐使用 Homebrew 安装。Ubuntu:推荐使用apt安装。Node.js 环境:如果你已经使用npm管理 Node.js 包,也可以通过安装。在任何操作系统上,安装完成后,运行cloc就能统计你代码的行数了。
2025-01-09 19:31:32
1250
原创 Prometheus学习笔记
Prometheus 是一个独立的服务,不依赖于其他外部存储系统,且支持水平扩展,能够在大规模分布式系统中使用。Prometheus 提供了强大的查询语言 PromQL,用于查询、聚合和筛选时间序列数据。(例如,实例、区域、环境等)对时间序列进行多维度分组,允许你对不同维度的数据进行灵活查询。机制从暴露指标的应用程序、服务、数据库等抓取数据。掌握这些核心概念后,你将能够有效地使用 Prometheus 进行高效的监控和报警配置。:抓取的数据以时间序列的形式存储在 Prometheus 的本地时序数据库中。
2024-12-30 14:47:55
1040
原创 go并发模型的详细介绍
Go 的并发模型是基于goroutines和channels构建的,具备高效、简单、易用的特点。通过 goroutine,Go 可以轻松实现并发执行,而通过 channel,它可以安全地在 goroutines 之间传递数据和进行同步。Go 的并发编程模型大大简化了并发程序的开发,减少了传统并发编程中常见的错误和复杂性,使得开发者可以集中精力解决实际业务问题。
2024-12-23 22:30:24
1110
原创 云原生相关的 Go 语言工程师技术路线(含博客网址导航)
要成为云原生相关的 Go 语言工程师,需要深刻理解 Go 语言本身,并掌握容器化、Kubernetes、微服务架构、API 设计、CI/CD、监控与日志等云原生技术。此外,积极参与开源项目、学习云平台的具体工具和服务,能够帮助你不断提升技术水平并紧跟行业趋势。
2024-12-23 22:19:27
1408
原创 go基本知识与语法入门
Go 语言的设计目标是简洁、并发和高效,它提供了很多优秀的特性,如垃圾回收、内存安全、强类型系统、并发支持等。它适用于从系统编程到网络服务等各种应用领域。通过简洁的语法和工具,Go 能帮助开发者更容易地编写可靠的高性能应用。
2024-12-22 13:32:34
698
原创 REST模式是什么,以及其他架构风格
REST(Representational State Transfer)是一种架构风格,用于设计网络上的分布式系统,特别是Web API。它定义了一组约束和原则,用于提高API的可扩展性和简洁性,广泛用于Web服务开发。REST模式是一种轻量级、简洁且易于扩展的架构风格,广泛用于Web API开发。它通过使用标准的HTTP协议和方法,使得不同的客户端能够通过网络访问和操作资源,促进了不同系统之间的互操作性。虽然REST已经成为现代Web应用和API开发的标准之一,但它并不是唯一的选择。
2024-12-19 11:16:12
1613
原创 linux/ubuntu安装Prometheus&Grafana
通过以上步骤,你可以在 Linux 上成功安装并配置 Prometheus 和 Grafana。Prometheus 用于收集和存储度量数据,而 Grafana 则用于将这些数据可视化。两者结合使用能帮助你更好地监控和管理你的系统和应用性能。
2024-12-16 10:54:13
1290
原创 RBAC学习笔记
RBAC(Role-Based Access Control,基于角色的访问控制)是一种常用的权限管理模型,它根据用户的角色来分配和管理访问权限。RBAC 的基本思想是通过定义角色、权限和用户之间的关系,实现对资源的控制。
2024-12-13 10:46:36
985
原创 docker及docker exec命令学习笔记
使用 docker exec 修改的内容(如文件)仅在容器运行时有效。docker exec 是一个常用的 Docker 命令,允许你在已经运行的容器中执行命令或启动新的进程。docker exec 是一个功能强大的工具,特别适合在开发、调试或临时维护容器时使用。有时,默认用户可能没有权限执行某些操作,可以通过 -u root 指定使用 root 用户。指定目标容器的名字或容器 ID。• /bin/bash:进入容器的 bash shell。要在容器中执行的命令。• ls:列出容器内的文件。
2024-12-04 16:14:24
1250
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅