avatar
文章
106
标签
55
分类
20

主页
分类
归档
标签
关于笔者
跟着小康学编程
搜索
主页
分类
归档
标签
关于笔者

跟着小康学编程

TCP 面试题 — TIME_WAIT 状态过多会导致什么问题?怎么解决?
发表于2024-07-12|编程计算机网络面试| 条评论
🚀 大家好,我是小康。 今天给大家分享一个 TCP 面试题 :TIME_WAIT 状态过多会导致什么问题?怎么解决? 小技巧:在面试中,可以参考下面的示例回答,这样回答简洁明了。详细介绍部分则是为了帮助大家系统学习,以便应对面试官深入提问。 示例回答TIME_WAIT 状态过多会导致服务器资源被占用( 如文件描述符、内存等 ),端口可能耗尽,可能导致新连接无法建立。解决方法包括减少 TIME_WAIT 时间或启用端口重用。 详细解释TIME_WAIT 状态过多的影响: 资源占用:每个 TIME_WAIT 状态的连接都占用系统资源(如文件描述符、内存等),如果有大量连接处于 TIME_WAIT 状态,会消耗大量资源。 端口耗尽:由于 TIME_WAIT 状态需要等待 2MSL 时间,如果有大量连接频繁建立和关闭,系统可能会耗尽可用端口,导致新连接无法建立。 解决方法:1、减少 TIME_WAIT 时间:通过调整操作系统的参数,缩短 TIME_WAIT 状态的持续时间。例如,在 Linux 系统中,可以调整 tcp_fin_timeout 参数。 1echo 30 > ...
TCP 面试题 — TCP 挥手为什么需要四次呢?三次不行?
发表于2024-07-12|编程计算机网络面试| 条评论
🚀 大家好,我是小康。 今天给大家分享一个 TCP 面试题 :TCP 挥手为什么需要四次呢?三次不行? 小技巧:在面试中,可以参考下面的示例回答,这样回答简洁明了。详细介绍部分则是为了帮助大家系统学习,以便应对面试官深入提问。 示例回答:TCP 挥手需要四次,因为双方需要独立关闭各自的传输方向。三次不行,因为需要双方都确认各自的 FIN 和 ACK。四次挥手确保了连接的完全关闭,避免数据丢失或冲突。 详细解释:先来看看 TCP 四次挥手的过程: TCP 关闭连接通过四次挥手来实现,主要是因为双方需要独立地关闭各自的传输方向。 具体步骤如下: 第一次挥手(FIN): 主动关闭方(比如客户端)发送 FIN 报文,告诉对方(比如服务器)“我没有数据要发了”。 第二次挥手(ACK): 服务器收到 FIN 报文后,发送一个 ACK 确认,表示“我知道你没有数据了”。 第三次挥手(FIN): 服务器也发送一个 FIN 报文,告诉客户端“我也没有数据要发了”。 第四次挥手(ACK): 客户端收到服务器的 FIN 报文后,发送一个 ACK 确认,表示“我知道你也没有数据了”。 为什 ...
Redis 架构解析:从主从复制到哨兵和集群模式
发表于2024-04-30|NoSQL数据库数据库技术Redis教程高可用架构| 条评论
大家好,我是小康,今天我们来聊下 Redis 的几种架构模式,包括主从复制、哨兵和集群模式。 前言:设想一下,你的咖啡馆在城市中太受欢迎,导致每天都人满为患。为了缓解这种压力,你决定在其他地方开设分店,这样顾客就可以在附近的分店享受咖啡,而不必涌向一个地方,这就好比 Redis 的主从复制,让数据备份并允许多个地方进行读取。 但这还不够,因为你需要确保当主要的咖啡馆遇到问题时,例如突然断电,有其他分店能够迅速接手,成为新的主要店铺,继续为顾客提供服务。这就像 Redis 的哨兵系统,它会自动检测故障并进行转移,确保服务始终在线。 最后,随着咖啡馆连锁店的增长,每家店都开始独立运作,甚至可能有自己的特色饮品和优惠活动,同时仍然保持整体的协调和一致性。这就是 Redis 集群的工作方式,它将数据分片到不同的节点,每个节点都可以独立处理请求,但都是整个系统的一部分。 现在,让我们深入探讨 Redis 如何通过主从复制、哨兵和集群来确保它的强大性能和高可靠性。 主从复制 主从复制基本概念在日常工作中,我们都知道团队合作的重要性。就像团队中有领导者和执行者,Redis 也采用了一种类似的策略 — ...
全面解析 Redis 持久化:RDB、AOF与混合持久化
发表于2024-04-30|NoSQL数据库数据库技术Redis教程| 条评论
大家好,我是小康,今天给大家聊下 Redis 的几种持久化机制。 Redis 持久化前言: 在数字时代,数据的价值越来越被人们所重视。但数据只有在经过妥善保管和管理时,才能真正发挥其潜在价值。对于使用 Redis 这一热门的内存数据库的开发者和企业来说,数据的持久化无疑是一个必须面对的重要议题。 我们都知道,Redis 以其卓越的性能和灵活的数据结构而著称,但如何确保内存中的数据不因突发事件而丢失?如何在确保性能的前提下,为数据提供一个更加稳固的避风港? 本文将为你揭开 Redis 持久化的神秘面纱,探讨其背后的机制,并帮助你为你的应用选择合适的持久化策略。 Redis与内存数据库的特性为什么Redis是内存数据库?Redis是一种键值存储系统,其数据主要存储在内存中,因此被称为内存数据库。与传统的磁盘存储数据库不同,Redis的设计初衷是为了提供高速、低延迟的数据访问。由于数据直接存储在内存中,可以避免磁盘I/O的开销,从而实现极高的读写速度。 🔍例子: 想象一下你在家里找一本书。如果这本书就放在你的桌子上(相当于内存),你可以立刻拿到它。但如果它放在地下室的一个盒子里( ...
Redis入门指南:掌握常见数据类型
发表于2024-04-30|NoSQL数据库数据库技术Redis教程| 条评论
前言: 每次你在游戏中看到玩家排行榜,或者在音乐应用中浏览热门歌单,有没有想过这个排行榜是如何做到实时更新的?当然,依靠 Redis 即可做到。 在技术领域,我们经常听到「键值存储」 这个词。但在 Redis 的世界里,这只是冰山一角。Redis 的对象,不仅仅是简单的数据,它们是为各种任务量身定制的超能工具。 接下来,让我们走进 Redis 的对象世界,Redis 5.0版本就已经支持了下面的 9 种类型,分别是 :字符串对象、列表对象、哈希对象、集合对象、有序集合对象、Bitmaps 对象、HyperLogLog 对象、Geospatial 对象、Stream对象。 Redis 对象:首先,我们要知道,Redis 中保存的数据是以键值对的形式存在的。 对象的类型与编码类型在 Redis 的大家庭中,每个键值对都有两个重要的“身份证”。那就是键的类型和值的类型。就好像我们的名字和职业,其中名字(键)总是一个字符串,而职业(值)则可以是各种各样:可以是字符串、列表、哈希、集合,甚至是有序集合。这就是我们所说的对象类型,五彩斑斓,各有特色。 编码我们都知道超级英雄有着不同的超能力,蜘蛛 ...
Linux 命令入门指南:快速掌握基础命令
发表于2024-04-29|Linux 教程| 条评论
作为程序员,我们在日常的工作中或多或少都会接触 Linux ,掌握其基本命令也是必不可少的。网上很多人都会推荐去看《鸟哥的私房菜—基础篇》,作为 Linux 编程的爱好者的我,还是不建议初学者一上来就看这本书,感觉对初学者不太友好,当手册去查还是可以的。 为了让更多想学习 Linux 的朋友快速入门,我这里专门给大家提供一个系统性学习 Linux 命令的详细指南,该指南主要是介绍要掌握的 Linux 基本命令有哪些,以及提供一些基础的示例,更加详细的命令参数大家可以在这个网站上查询,很方便的。https://man.niaoge.com/ 先来大致浏览下我们本篇文章要讲解的命令: 文件和目录操作命令ls:列出目录内容,想看看当前目录下有什么?简单! 1ls cd:更改当前目录,想跳转到桌面目录?试试这个: 1cd ~/Desktop touch: 创建新文件,快速创建一个新文件 note.txt: 1touch note.txt pwd:显示当前目录的完整路径,确认你现在在哪个目录?只需一条命令: 1pwd mkdir:创建新目录,需要一个新的项目目录 project?轻松搞定: ...
必读:2024年度最佳计算机编程书籍推荐
发表于2024-04-28|书籍推荐编程资源| 条评论
读大学期间,自己买了很多技术书,加上图书馆借的,自己读了不少。 技术书有很多,大家怎么选呢? 作为过来人,小康自己读过许多好书,也遇到过一些效果不佳的。为了帮助大家节省时间,避免走弯路,我在这里精心挑选了一些极具价值的书籍进行推荐。这些书籍不仅数量精简,而且都是经典之作,值得深入研读。因为小康自己从事的是后台开发的,所以这里推荐的书籍也是偏向后台的。但有一些通用计算机原理相关的书籍,对于以后想从事编程相关工作的朋友,也都是可以看的。 下面是我大学以及工作之后买的一些书籍: 微信搜索「跟着小康学编程」关注公众号后,在后台回复「书单」即可获取本文书单链接。 回复「pdf」即可获取本文提到的书籍电子版 pdf 一、语言类C 语言 《C程序设计语言》(第2版,新版) - 作者 : K&R 《C Primer Plus》(第6版) - 作者 : Stephen Prata 《C和指针》 作者: Kenneth A. Reek C++ 语言 《C++ Primer》(第5版) (作者: Stanley B. Lippman, Josée Lajoie, 和 Barbara ...
手把手教你搭建 Linux C/C++ 编程环境
发表于2024-04-28|Linux 开发环境搭建| 条评论
废话不多说,手把手教你如何搭建 Linux 编程环境。 搭建环境具体步骤选择一个 Linux 发行版:如果你是 Linux 初学者,我建议你选择 Ubuntu。该系统对新手友好,安装过程简单,而且有大量的在线资源和社区支持。 考虑使用虚拟机 :不想直接安装 Linux 系统 ? 没问题!使用虚拟机可以在你的主操作系统上模拟运行 Linux。 有以下两种虚拟机软件可供选择: VirtualBox - 一个开源的、免费的虚拟化软件,非常适合初学者。 VMware Workstation - 一个功能强大的虚拟化工具。 这里我推荐直接使用 VMware,一旦你选择了虚拟机软件,就可以下载 Ubuntu 的 ISO 镜像并在虚拟机中安装它。 1.下载 VMware 虚拟机并安装 VMware虚拟机下载地址 2.下载 ISO 镜像并安装 Ubuntu 的 ISO 镜像下载地址 以下载 20.04.6 ISO 镜像版本举例: 我们可以看到两个版本:desktop 版本(图形桌面版)和 server 版本(无图形界面的服务器版)。 建议初学者直接下载 desktop 版本,这是一个桌面版 ...
如何快速掌握 C++:从新手到高手的学习指南
发表于2024-04-28|编程语言学习C++ 编程教程| 条评论
大家好,我是小康,今天我们来聊下如何快速学习 C++ 语言。 本篇文章适合于有 C 语言编程基础的小伙伴们,如果还没有学习过 C,请看这篇文章先入个门:C语言快速入门 引言:C++,作为一门集面向过程和面向对象编程于一体的强大语言,既保留了 C 语言的高效性,又引入了类、继承、多态、模板等现代编程概念,是学习计算机编程不可或缺的一环。本文旨在为初学者提供一个清晰的 C++ 学习路径,帮助你快速入门并掌握这门语言。 大家可以先浏览下本篇文章要讲解的 C++ 知识图谱: C++的基础语法我就不讲解了,包括变量和常量的定义、标识符和关键字、语句等,这些和 C 的一样,如果你还没有学习过 C 语言,可以看我之前的文章:「如何快速学习 C 语言 ?」 数据类型基本数据类型C++的基本数据类型包括 字符型、整型、浮点型和布尔型。 字符型 (char):用于存储单个字符。 1char letter = 'A'; 整型 (int, short, long, long long):用于存储整数, 以及它们的 unsigned 变体(unsigned int, unsigned ...
深入 C++11:从 auto 到 Lambda,解锁现代 C++ 的强大功能
发表于2024-04-28|编程语言学习C++ 编程教程| 条评论
在介绍 C++11 之前,我们先回顾一下 C++98和C++03。C++98 作为 C++ 的第一个国际标准,奠定了这门语言的基础结构和核心特性,比如类、继承、模板、异常处理等。这些特性使得 C++ 成为一门强大的、面向对象的编程语言,广泛应用于系统/应用软件、游戏开发、实时系统等领域。C++03 则是对 C++98 进行了修订,主要解决标准的疑义和错误,没有引入新特性。 然而,随着软件开发的不断进化,C++98和C++03 在表达能力、编程便利性和性能方面显示出了局限性。比如:对并发编程的支持不够强大,模板编程有时显得过于复杂,资源管理(尤其是内存管理)易于出错等。这些局限性促使了 C++11 标准的诞生,它被视为 C++ 的一次重大更新,于 2011 年正式发布。这次更新标志着 C++ 进入现代化的重要一步,引入了许多新特性和改进,旨在使 C++ 更易于使用,更灵活,同时提高了代码的安全性和性能。 另外,学习 C++11 新特性需要你有简单的 C、C++编程基础,还不了解的朋友可以看这两篇文章:如何学习 C 语言 和 如何快速学习 C++ ,文章通俗易懂而且有丰富的 ...
1…91011
avatar
小康
程序猿一枚,也是一名编程狂热者
文章
106
标签
55
分类
20
关注跟着小康学编程
公告
欢迎访问我的编程学习网站!关注我的微信公众号「跟着小康学编程」,不错过任何更新和独家内容!
最新文章
网络安全面试题 — RSA和AES算法有什么区别?2024-07-24
网络安全面试题 — 说说有哪些安全攻击?2024-07-24
网络安全面试题 — DNS劫持了解吗?2024-07-24
网络安全面试题 — 什么是 DoS、DDoS、DRDoS 攻击?2024-07-24
网络安全面试题 — 什么是 CSRF 攻击?如何避免?2024-07-24
分类
  • ChatGPT2
  • Linux 开发1
    • 环境搭建1
  • Linux 教程1
  • Linux系统编程1
  • Linux网络编程1
  • NoSQL数据库3
    • 数据库技术3
标签
IP Linux 内存管理 auto 关键字 开发工具 Redis哨兵 混合持久化 Linux系统编程 Redis教程 AOF Redis数据类型 Lambda 表达式 编程入门 Redis主从复制 C++11 新特性 C++教程 C快速学习 Linux 基础教程 Redis架构 计算机科学 UDP Linux网络编程 侯捷 C++ 视频合集 计算机网络面试 C/C++ 开发 OpenAI Redis集群 RDB OpenAI 账号注册 键值存储 环境配置 Redis案例 HTTP Modern C++ Redis基础 Linux 服务器模型 我的公众号 Linux I/O C语言基础 C语言入门 ChatGPT
归档
  • 七月 202491
  • 四月 202415
网站资讯
文章数目 :
106
本站总字数 :
240k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2024 By 小康
框架 Hexo|主题 Butterfly
搜索
数据库加载中