- 博客(119)
- 收藏
- 关注
原创 【Redis初阶】string类型
⼀个分布式 Web 服务将⽤⼾的 Session 信息(例如⽤⼾登录信息)保存在各⾃的服务器中,但这样会造成⼀个问题:出于负载均衡的考虑,分布式服务会将⽤⼾的访问请求均衡到不同的服务器上,并且通常⽆法保证⽤⼾每次请求都会被均衡到同⼀台服务器上,这样当⽤⼾刷新⼀次访问是可能会发现需要重新登录,这个问题是⽤⼾⽆法容忍的。将 key 对应的 string 表⽰的数字减去对应的值。⼈员可以结合字符串类型的特点以及提供的命令,充分发挥⾃⼰的想象⼒,在⾃⼰的业务中去找到合适的场景去使⽤ Redis 的字符串类型。
2026-07-23 09:19:46
253
原创 【python】库的使用
就是是别人已经写好了的代码可以让我们直接拿来用一个编程语言能不能流行起来一方面取决于语法是否简单方便容易学习一方面取决于生态是否完备按照库的来源可以大致分成两大类标准库: Python自带的库只要安装了Python就可以直接使用第三方库其他人实现的库要想使用需要额外安装。
2026-07-20 18:52:27
305
原创 【python】列表、元组、字典和文件
我们马上要讲的字典, 是一个键值对结构. 要求字典的键必须是 "可hash对象" (字典本质上也是一个hash表). 而一个可hash对象的前提就是不可变. 因此元组可以作为字典的键, 但是列表不行.列表就是买散装辣条, 装好了袋子之后, 随时可以把袋子打开, 再往里多加辣条或者拿出去一些辣条.元组就是买包装辣条, 厂家生产好了辣条之后, 一包就是固定的这么多, 不能变动了.字符编码问题, 是编程中一类比较常见, 又比较棘手的问题. 需要对于字符编码有一定的理解, 才能从容应对.
2026-07-19 21:22:49
278
原创 【实战项目】从零实现c++ai大模型接入SDK(三)环境的安装与chatSDK快速上手
随着⼈⼯智能技术的⻜速发展,AI编程助⼿类的插件和IDE如⾬后春笋般涌现,为开发者提供强⼤的代码⽣成、智能补全、错误检测和修复等功能,显著提⾼了开发效率。AI编程插件:插件名称形态核⼼功能GithubCopilot⽀持VS Code、JetBrains IDEs等实时代码补全、Copilot Chat、多语⾔⽀持、上下⽂感知、智能代理、测试⽣成⽀持VSCode/JetBrains等代码补全、Bug检测、注释⽣成、单元测试⾃动⽣成ClineVS Code插件。
2026-07-19 20:53:45
533
原创 【python】函数详解
实际开发中我们的一个通常的编程原则, 是 "逻辑和用户交互分离". 而第一种写法的函数中, 既包含了计算逻辑, 又包含了和用户交互(打印到控制台上). 这种写法是不太好的, 如果后续我们需要的是把计算结果保存到文件中, 或者通过网络发送, 或者展示到图形化界面里, 那么第一种写法的函数, 就难以胜任了.上述代码, a, b, c, d 函数中的局部变量名各不相同. 如果变量名是相同的, 比如都是 num , 那么这四个函数中的 num 是属于同一个变量, 还是不同变量呢?
2026-07-17 19:57:51
291
原创 【python】顺序、条件、循环语句,break和continue,人生重开模拟器案例
条件语句能够表达如果...否则..."这样的语义这构成了计算机中基础的逻辑判定条件语句也叫做分支语句表示了接下来的逻辑可能有几种走向一个典型的例子:如果丘处机没有路过牛家村,1. 那么金兵不会死在郭, 杨两家手上2. 郭, 杨两家就不会流亡北方3. 郭夫人就不会去到大漠, 完颜洪烈就不会遇到包惜弱4. 郭靖就不会和江南七怪救了铁木真5. 蒙古就不会统一6. 蒙古铁骑就不会西征7. 欧洲就不会出现火药, 也就不会出现文艺复兴, 大航海.
2026-07-17 08:00:00
202
原创 【Redis初阶】常见数据类型
在正式介绍 5 种数据结构之前,了解⼀下 Redis 的⼀些全局命令、数据结构和内部编码、单线程命令处理机制是⼗分必要的,它们能为后⾯内容的学习打下⼀个良好的基础.主要体现在两个⽅⾯:1)Redis 的命令有上百个,如果纯靠死记硬背⽐较困难,但是如果理解 Redis 的⼀些机制,会发现这些命令有很强的通⽤性。2)Redis 不是万⾦油,有些数据结构和命令必须在特定场景下使⽤,⼀旦使⽤不当可能对 Redis 本⾝或者应⽤本⾝造成致命伤害。
2026-07-16 10:50:09
215
原创 【Redis初阶】初识、特性和安装
站在数据冷热的⻆度,数据分为热数据和冷数据,热数据通常是指需要频繁操作的数据,反之为冷数据,例如对于视频⽹站来说,视频基本信息基本上在各个业务线都是经常要操作的数据,⽽⽤⼾的观看记录不⼀定是经常需要访问的数据,这⾥暂且不讨论两者数据规模的差异,单纯站在数据冷热的⻆度上看,视频信息属于热数据,⽤⼾观看记录属于冷数据。失,因此 Redis 提供了两种持久化⽅式:RDB 和 AOF,即可以⽤两种策略将内存的数据保存到硬盘中,这样就保证了数据的可持久性,后续我们将对 Redis 的持久化进⾏详细说明。
2026-07-15 17:39:36
167
原创 【实战项目】从零实现c++ai大模型接入SDK(二)人工智能的概念以及历史发展
⼈⼯智能,即Artificial Intelligence,简称AI,是计算机科学的⼀个分⽀,旨在让计算机或机器能模仿⼈类的思维和⾏为,能看、能听、能说、能学习、能决策,从⼀个简单的命令执⾏者,变成⼀个可以感知、理解、推理、学习等服务与⼈类的"智慧"伙伴。1956年,在美国达特茅斯学院汇聚了那个时代最聪明的⼀批⼈,他们坐在⼀起开了个会,会议主题是"试图让机器精确模拟学习或其他智能⾏为",该次会议也被称作"AI的宪法会议",约翰·⻨卡锡⾸次提出"⼈⼯智能"⼀词。
2026-07-15 08:00:00
174
原创 【python】安装与基础语法
a=10创建变量的语句非常简单其中a 为变量名当我们创建很多个变量的时候就可以用名字来进行区分.= 为赋值运算符表示把右侧的数据放到左侧的空间中注意变量的名字要遵守一定规则硬性规则务必遵守变量名由数字字母下划线构成数字不能开头变量名不能和关键字重复变量名大小写敏感. num和Num是两个不同的变量名软性规则建议遵守变量名使用有描述性的单词来表示尽量表达出变量的作用一个变量名可以由多个单词构成长一点没关系但是含义要清晰当变量名包含多个单词的时候。
2026-07-14 19:30:47
168
原创 【实战项目】从零实现c++ai大模型接入SDK(一)
⽐如DeepSeek官⽹提供的能和⽤⼾聊天的⽹⻚服务,实际就是DeepSeek-V4模型装上了⼀个聊天界⾯,让⽤⼾低成本使⽤⼤模型提供的服务,你问⼤模型问题,⼤模型将理解你的问题后将⾃⼰回答输出给你。⼤模型应⽤越来越⼴泛,许多公司都在将⼤模型能⼒渐渐接⼊到⾃⼰的产品中,在AI原⽣应⽤开发领域,⼤模型应⽤开发相关岗位也越来越多,会使⽤API集成⼤模型的能⼒,能让你在求职中更具竞争⼒,更好的适应⾏业的发展趋势。⼀个既能看懂你的照⽚(视觉),⼜能听懂你的指令(语⾳),还能⽤⽂字回答你的模型,就是⼤模型。
2026-07-14 08:00:00
564
原创 【Redis初阶】浅谈分布式
在我们大部分人的学习过程中,绝大多数人是没有经历过一些实际经验的,所以我们以一个“电子商务”应用为例。来简单介绍从100个到千万级并发服务短的架构演进过程,同时列出相关技术,让大家有一个整体的认识,方便大家对后续学习有一定的整体视野。
2026-07-13 19:06:42
304
原创 【Qt系统相关】网络、音视频相关
咱们接下来的课程内容中重点介绍 Qt 的⽹络相关的 API 的使⽤. 对于之前 Linux 课堂上介绍过的⽹络 相关概念和原理, 课件上均不再解释.如果顺序反过来, 可能会出现端⼝绑定好了之后, 请求就过来了. 此时还没来得及连接信号槽. 那么这个请求就有可能错过了.4) 修改 widget.cpp 中的 Widget 构造函数, 通过信号槽, 处理收到的服务器的响应.实际 Qt 开发中进⾏⽹络编程, 也不⼀定使⽤ Qt 封装的⽹络 API, 也有⼀定可能使⽤的是系。
2026-07-13 12:36:18
222
原创 【Qt系统相关】文件、多线程详解
⽂件操作是应⽤程序必不可少的部分。Qt 作为⼀个通⽤开发库,提供了跨平台的⽂件操作能⼒。Qt提供了很多关于⽂件的类,通过这些类能够对⽂件系统进⾏操作,如⽂件读写、⽂件信息获取、⽂件复制或重命名等。在 Qt 中,多线程的处理⼀般是通过 QThread类 来实现。QThread 代表⼀个在应⽤程序中可以独⽴控制的线程,也可以和进程中的其他线程共享数据。QThread 对象管理程序中的⼀个控制线程。
2026-07-13 12:01:43
320
原创 CMake工程指南(三)静态库
这节我们还是⽤同样的例⼦和⼤家⼀起演⽰下,如何发布我们⽣成的静态库到linux下的标准路径,以供其他软件引⽤,从⽽达到真正代码复⽤的⽬的。上⾯都是理论过程,下⾯我们通过例⼦来验证下这个过程,过程中使⽤到了配置⽣成阶段的⼀个⽣成器表达式,⽤于获取⽬标的输出路径:$<TARGET_FILE:MyMath>。在下⼀节,我们将演⽰如果使⽤cmake的find_package函数查找我们发布的静态库,并在其他项⽬⾥引⽤。⽣成器会为每⼀个⽬标⽣成链接规则,其中包括⽬标⽂件的输出路径,最终会⽣成⼀下 makefile。
2026-07-12 16:11:53
185
原创 【Qt事件】定时器事件
在 Qt 中,事件分发器(Event Dispatcher) 是⼀个核⼼概念,⽤于处理 GUI 应⽤程序中的事件。事件分发器负责将事件从⼀个对象传递到另⼀个对象,直到事件被处理或被取消。每个继承⾃ QObject类 或QObject类 本⾝都可以在本类中重写 bool event(QEvent *e) 函数,来实现相关事件的捕获和拦截。
2026-07-12 13:13:22
388
原创 【Qt系统相关】鼠标事件
事件是应⽤程序内部或者外部产⽣的事情或者动作的统称。在 Qt 中使⽤⼀个对象来表⽰⼀个事件。所 有的 Qt 事件均继承于抽象类 QEvent。事件是由系统或者 Qt 平台本⾝在不同的时刻发出的。当⽤⼾按 下⿏标、敲下键盘,或者是窗⼝需要重新绘制的时候,都会发出⼀个相应的事件。⼀些事件是在⽤⼾ 作时发出,如键盘事件、⿏标事件等,另⼀些事件则是由系统本⾝⾃动发出,如定时器事件。常⻅的 Qt 事件如下:常⻅事件描述:事件名称描述鼠标事件左键、右键、滚轮、移动、按下和松开键盘事件。
2026-07-12 12:59:14
380
原创 CMake工程指南(三)静态库
INTERFACE 关键字:相当于使⽤set_target_properties 设置了INTERFACE_LINK_LIBRARIES,只会写进⽬标的INTERFACE_LINK_LIBARIERS列表⾥。PRIVATE 关键字:相当于使⽤set_target_properties 设置了LINK_LIBRARIES属性,设置的库列表 只会写进⽬标的LINK_LIBRARIES列表⾥。下⾯我们新建test_target_link_libraries 这个⼯程,通过设置属性观察属性的传递过程,并观察编译。
2026-07-11 18:05:06
487
原创 CMake工程指南(二)
放在标准路径下的 动态库和⼆进制,在其他程序链接时,甚⾄可以不⽤单独指定 gcc的 -L 和 -I 参数,gcc就可以在默认路径下⾃动查找,从⽽简化编译流程。普通的⼆进制安装到默认路径下,也不⽤的在独⽴指定PATH,shell 解释器也可以找到⼆进制,并运⾏。我们会带领⼤家从⼀⾏⼀⾏⼿写CMake⽂件的⽅式开始,逐步熟悉如何⽤CMake 来管理各个场景下的⼯程需求,⽐如编译⼆进制,静态库,动态库,打包发布程序等。安装(简单理解为cp) 将 ⼆进制,静态库,动态库,头⽂件,配置⽂件 部署到指定⽬录。
2026-07-11 16:39:42
181
原创 【Qt】 系统相关:事件与定时器
本篇学习 “Qt 事件”,重点放在事件机制、键盘鼠标事件、定时器、事件分发器和事件过滤器。学习这一部分时,不要只记住某个函数名,更重要的是理解 Qt GUI 程序的运行方式:界面并不是按顺序一直执行某段代码,而是在事件循环中等待外界动作,再把这些动作包装成事件对象,交给合适的控件去处理。
2026-07-07 17:15:38
231
原创 【Qt】窗口(二)
对话框是 GUI 程序中不可或缺的组成部分。⼀些不适合在主窗⼝实现的功能组件可以设置在对话框 中。对话框通常是⼀个顶层窗⼝,出现在程序最上层,⽤于实现短期任务或者简洁的⽤⼾交互。Qt常⽤的内置对话框有:QFiledialog(⽂件对话框)、QColorDialog(颜⾊对话框)、QFontDialog (字体对话框)、QInputDialog (输⼊对话框)和 QMessageBox(消息框)。运行示例:注意我们在创建新项目的时候需要选的QDialog。代码实现:但是我们这里对话框里面什么都么有。
2026-05-26 08:00:00
700
原创 【Qt】窗口(一)
Qt 窗⼝ 是通过 QMainWindow类 来实现的。QMainWindow 是⼀个为⽤⼾提供主窗⼝程序的类,继承⾃ QWidget 类,并且提供了⼀个预定义的布局。QMainWindow 包含 ⼀个菜单栏(menu bar)、多个⼯具栏(tool bars)、多个浮动窗⼝(铆接部件)(dock widgets)、⼀个状态栏(status bar) 和⼀个 中⼼部件(central widget),它是许多应⽤程序的基础,如⽂本编辑器,图⽚编辑器等。
2026-05-25 08:00:00
329
原创 【Qt】常用控件(完)
本文介绍了Qt中的容器类控件和布局管理器。容器类控件包括GroupBox分组框和TabWidget标签页控件,前者用于美化界面分组,后者支持多标签页切换。布局管理器部分详细讲解了四种布局方式:垂直布局(QVBoxLayout)、水平布局(QHBoxLayout)、网格布局(QGridLayout)和表单布局(QFormLayout),以及如何使用Spacer添加空白间距。重点说明了各种布局的核心属性和使用方法,包括如何设置边距、间距、拉伸系数等,并提供了代码示例展示如何嵌套使用不同布局管理器来构建复杂的界面
2026-05-21 08:00:00
372
原创 【Qt】常用控件(二)
可以看到clicked只需要点击就能触发,press按下鼠标就会打印日志,而released需要按下鼠标松开后才会有反应,输出日志,而toggled点击就会触发一次,此后再次点击就不会触发,然后再次点击另外三个中任意一个就可以再次输出false,所以toggled有两次触发。虽然填充满窗口,但是一旦程序运行起来之后,Qlabel的尺寸就固定下来了,窗口发生改变,此时Qlabel是不会改变的。是⼀个专⻔⽤来显⽰数字的控件. 类似于 "⽼式计算器" 的效果.:平面的显示风格,数字呈现在一个平坦的表面上。
2026-05-12 08:00:00
708
原创 【Qt】常用控件(一)
Widget是Qt中的核心概念英文原义是小部件",我们此处也把它翻译为控件".控件是构成一个图形化界面的基本要素。像上述示例中的按钮列表视图树形视图单行输入框多行输入框滚动条下拉框等都可以称为控件".Qt作为一个成熟的GUI开发框架内置了大量的常用控件这一点在中就可以看到端倪并且Qt也提供了自定义控件的能力可以让程序猿在现有控件不能满足需求的时候对现有控件做出扩展或者手搓出新的控件。
2026-05-11 08:00:00
717
原创 【Qt】信号和槽
在Qt中,用户和控件的每次交互过程称为一个事件。比如用户点击按钮是一个事件,用户关闭窗口也是一个事件。每个事件都会发出一个信号,例如用户点击按钮会发出按钮被点击的信号,用户关闭窗口会发出窗口被关闭的信号。Qt中的所有控件都具有接收信号的能力,一个控件还可以接收多个不同的信号。对于接收到的每个信号,控件都会做出相应的响应动作。例如,按钮所在的窗口接收到按钮被点击的信号后,会做出关闭自己的响应动作;再比如输入框自己接收到输入框被点击的信号后,会做出显示闪烁的。
2026-05-09 08:00:00
391
原创 【Qt】初识(上)
当⽗对象析构的时候,这个列表中的所有对象也会被析构。因此,它会显⽰在⽗组件的坐标系统中,被⽗组件的边界剪裁。⼀个对话框的时候,应⽤程序将其删除,那么,我们希望属于这个对话框的按钮、图标等应该。在 Qt 中,尽量在构造的时候就指定 parent 对象,并且⼤胆在堆上创建。也是⼀个局部变量,在超出作⽤域的时候当然也需要析构。我们看到,在上⾯的代码中,作为⽗对象的。Qt还是推荐使用new的方式在堆上创建对象,通过对象树,统一释放对象。创建对象的时候,在构造函数中,指定父对象(此时才会挂载到对象树中)
2026-05-03 20:07:14
705
原创 【Qt】背景和环境搭建
Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展。Qt为开发者提供了一种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用C++语言进行高级开发。图形用户界面:指采用图形方式显示的计算机操作用户界面,是计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。如下分别是:Android手机图形用户界面和IOS手机图形用户界面。安卓界面iOS界面。
2026-05-03 08:00:00
647
原创 【MySQL】视图与用户管理
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。创建视图createview视图名as select语句;修改了视图,对基表数据有影响修改了基表,对视图有影响删除视图dropview视图名;与表一样,必须唯一命名(不能出现同名视图或表名)创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响视图不能添加索引,也不能有关联的触发器或者默认值。
2026-04-29 08:00:00
501
原创 【MySQL】索引
而这时,就涉及到磁盘和内存的数据交互,也就是。页内部存放数据的模块,实质上也是一个链表的结构,链表的特点也就是增删快,查询修改慢,所以优化查询。正式因为有序,在查找的时候,从头到后都是有效查找,没有任何一个查找是浪费的,而且,如果运气好,是。之前学习文件系统,就是在磁盘的基本结构下建立的,文件系统读取基本单位,就不是扇区,而是数据块。需要注意,上面的图,是理想结构,大家也知道,目前要保证整体有序,那么新插入的数据,不一定会。所以,最基本的,找到一个文件的全部,本质,就是在磁盘找到所有保存文件的扇区。
2026-04-28 08:00:00
352
原创 【MySQL】事务
摘要:本文系统介绍了MySQL事务的概念、特性及实现原理。事务是保证数据库操作原子性的重要机制,具有ACID特性(原子性、一致性、隔离性、持久性)。文章详细讲解了事务的四种隔离级别(读未提交、读提交、可重复读、串行化)及其可能引发的并发问题(脏读、幻读、不可重复读),并通过实验演示了不同隔离级别的表现。重点分析了MVCC多版本并发控制机制,包括隐藏字段、undo日志和ReadView的实现原理,解释了RR级别如何通过ReadView解决幻读问题。最后对比了RC和RR隔离级别的本质区别,即ReadView生成
2026-04-28 08:00:00
392
原创 【MySQL】内置函数
函数在 MySQL 5.7.6 后已被弃用,在 MySQL 8.0 版本中被彻底移除。由于时间一直再走,所以终会查不到。实际上都是往大了取。向下取整,实际上是往小了取。显示当前正在使用的数据库。查询两分钟以内的评论。很显然这并不更改原表。摘要,摘要后得到一个。
2026-04-26 08:00:00
440
原创 【MySQL】基本查询(下)
先创建一张空表,然后将去重后的数据插入到空表当中,最后在把名字改掉。返回查询到的数据的 平均值,不是数字没有意义。返回查询到的数据的 最大值,不是数字没有意义。返回查询到的数据的 最小值,不是数字没有意义。我们可以拆解问题,让他变成几个简单的子问题。返回查询到的数据的 总和,不是数字没有意义。显示每个部门的每种岗位的平均工资和最低工资。搭配使用,作用是对分组进行筛选,作用有些像。如何显示每个部门的平均工资和最高工资。在删除数据的时候,并不经过真正的事。返回查询到的数据的 数量。不对数据操作,所以比。
2026-04-25 08:00:00
384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅