自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 Redis Redis 常见数据类型

Redis数据结构与命令摘要 Redis提供5种核心数据结构:String(字符串)、Hash(哈希)、List(列表)、Set(集合)和Zset(有序集合)。每种结构都有特定命令和使用场景: String:基础类型,支持计数命令(INCR/DECR)、批量操作(MSET/MGET)等,适用于缓存、计数和会话共享场景。 Hash:键值对集合,适合存储对象属性(如用户信息),通过HSET/HGET等命令实现高效字段操作。 List:有序可重复元素集合,支持双向操作(LPUSH/RPOP),可模拟队列/栈,应用

2025-08-06 14:59:47 1136

原创 Redis 初识Redis

Redis是一种基于内存的高性能键值数据库,支持多种数据结构(字符串、哈希、列表等),具备读写速度快(10万/秒)、持久化、主从复制、集群等特性。广泛应用于缓存、排行榜、计数器等场景。Redis由Salvatore Sanfilippo开发,被Twitter、微博等大型公司使用。其版本迭代不断优化功能,如6.0引入多线程IO,7.0改进AOF存储方式。Redis通过内存存储保证高性能,同时支持数据持久化到磁盘,还提供丰富的客户端语言支持,是开发现代分布式系统的关键组件之一。

2025-08-01 14:06:41 889

原创 Mysql 图形化界面

摘要:本文介绍了使用MySQL Workbench连接远程数据库的方法。首先推荐了Navicat和SQLyog等收费工具,然后详细说明如何通过MySQL官方工具Workbench进行连接:需填写服务器公网IP、端口号(可通过netstat或show variables命令查询)以及数据库用户名。重点提示远程连接存在安全风险,建议使用指定端口保障安全。连接成功后,可在左侧schemas栏查看数据库。

2025-07-29 14:14:35 268

原创 Mysql Connect -- 详解

本文介绍了使用C语言连接MySQL数据库的基本流程。首先需要下载MySQL官方提供的C接口库,并确保MySQL服务正常运行。主要步骤包括:1)使用mysql_init()初始化连接;2)通过mysql_real_connect()建立数据库连接,需注意字符集设置;3)使用mysql_query()执行SQL命令;4)通过mysql_store_result()获取查询结果并处理数据;5)最后释放资源(mysql_free_result()和mysql_close())。文章还提供了获取查询结果行列数、列名和

2025-07-29 14:00:26 685

原创 MySQL 用户管理

摘要:MySQL用户管理主要包括创建用户、设置密码策略、授权和回收权限等操作。创建用户时需指定用户名、主机和密码,可通过修改validate_password参数调整密码强度要求。root用户可为其他用户修改密码,使用grant/revoke命令进行权限管理。需要注意权限修改后需执行flush privileges刷新,且避免创建可从任意主机登录的高权限用户。通过合理配置用户权限,可有效降低只使用root账户带来的安全风险。

2025-07-27 13:12:47 867

原创 MySQL 视图

摘要:视图是基于查询的虚拟表,包含列和行数据,与基表数据相互影响。基本操作包括创建视图(简化高频查询)、修改视图/基表(数据同步影响)、删除视图。使用规则要求视图命名唯一,数量不限但需考虑性能,不能添加索引或触发器。视图可提高安全性,需足够权限,支持ORDER BY但会被查询中的ORDER BY覆盖。视图可与表联合使用,为数据访问提供便利。(149字)

2025-07-27 10:54:20 377

原创 MySQL 事务管理

摘要 本文系统阐述了MySQL事务的ACID特性及其实现原理。首先指出不加控制的CURD操作可能引发数据不一致问题,通过事务的原子性、一致性、隔离性和持久性可解决这些问题。重点分析了四种隔离级别(读未提交、读提交、可重复读、串行化)的表现差异及对应的并发问题(脏读、不可重复读、幻读)。深入探讨了MVCC机制,包括隐藏字段、undo日志和ReadView的工作原理,解释了可重复读级别如何通过版本链和可见性判断实现事务隔离。最后对比了RC和RR级别下ReadView生成时机的本质区别,说明MySQL默认RR级别

2025-07-25 17:35:15 1789

原创 位运算算法

本文总结了位运算的基本原理和常见算法实战。在算法原理部分,介绍了与、或、异或等基本位运算符,以及位操作技巧如获取某位的值、修改特定位等。算法实战部分通过5道LeetCode题目展示了位运算的应用:1)使用位图或哈希表判断字符唯一性;2)利用异或性质找出缺失数字;3)通过位运算实现加法;4)统计二进制位出现次数找出只出现一次的数字;5)结合异或和分组技巧查找两个缺失数字。这些案例展示了位运算在解决特定问题时的简洁高效特性。

2025-07-22 23:32:17 660

原创 前缀和算法

前缀和算法是一种高效处理区间查询的技术。一维前缀和通过预处理数组dp[i]=dp[i-1]+arr[i],将区间和查询优化为O(1)时间。二维前缀和则通过dp[i][j]=dp[i-1][j]+dp[i][j-1]+arr[i][j]-dp[i-1][j-1]预处理矩阵,实现快速子矩阵查询。该思想可扩展应用于多种场景:724题通过前缀和与后缀和数组寻找中心下标;238题利用前缀积和后缀积计算除自身外的乘积;560题使用前缀和+哈希表统计和为k的子数组;974题结合同余定理处理可被k整除的子数组;525题将0

2025-07-20 13:59:18 1015

原创 MySQL 索引

MySQL索引优化与B+树结构解析 摘要: 本文系统阐述了MySQL索引的工作原理及优化策略。首先指出索引通过空间换时间提高查询效率,但会降低写操作性能。其次详细分析了磁盘存储原理,说明MySQL以16KB的Page为单位进行IO交互以减少次数。重点解析了B+树索引结构:数据有序存储在叶子节点,非叶子节点仅存储键值和指针,形成"矮胖型"结构降低IO次数。对比了B树、哈希等结构的优劣,阐明B+树在范围查询和空间利用率上的优势。文章还介绍了聚簇索引与非聚簇索引的区别,以及主键、唯一、普通、全

2025-07-19 16:44:41 1292

原创 二分查找算法(一)

本文总结了力扣中8道二分查找相关题目的解题思路,包括704二分查找、34查找元素区间、69平方根、35搜索插入位置、852山脉峰值、162寻找峰值、153旋转数组最小值、LCR173点名问题。核心要点:1)二分查找适用于具有二段性的有序数组;2)处理边界条件和循环终止是关键;3)针对不同问题需设计特定比较条件(如查找左右端点、峰值判断等)。文中给出了标准二分模板,并强调对于特殊场景(如缺失值、旋转数组)需要调整查找策略。通过比较暴力解法和二分解法,突显后者O(logN)的时间复杂度优势。

2025-07-16 19:25:04 732

原创 滑动窗口算法(二)

本文解析了力扣中的四道滑动窗口算法题目:904题(水果成篮)使用哈希表记录水果种类,通过双指针维护窗口;438题(字母异位词)通过数组统计字符频率,窗口移动时更新有效字符计数;30题(串联单词)将单词视为整体进行窗口滑动,需注意起始位置处理;76题(最小覆盖子串)记录目标字符频率,当窗口满足条件时收缩寻找最小子串。四道题均采用滑动窗口思想,通过左右指针动态调整窗口大小,配合哈希表或数组统计元素,实现高效求解。

2025-07-14 10:59:42 626

原创 Python 文件操作

变量是把数据保存到内存中。如果程序重启 / 主机重启,内存中的数据就会丢失。要想能让数据被持久化存储,就可以把数据存储到硬盘中,也就是在中保存。在 Windows “此电脑” 中看到的内容都是文件:通过文件的后缀名可以看到文件的类型。常见的文件的类型如下:(数据都是保存在硬盘上的)存储器包含内存(空间更小、访问速度快、成本更高、数据易失)和外存(主要体现:硬盘(空间更大、访问速度慢、成本便宜、数据持久化存储)),变量在内存中;文件在硬盘中。下面主要研究最简单的文本文件。

2025-06-27 16:21:11 725

原创 Python 字典

摘要:字典是存储键值对的数据结构,通过键快速查找值。Python字典创建方式包括空字典{}或初始化指定键值对(key:value),key不可重复但类型可不同。支持高效查找(in/[])、新增/修改(通过[]赋值)、删除(pop方法)等操作。字典遍历可获取所有key,Python保持插入顺序。key必须是可哈希的不可变对象(如数字、字符串等)。字典基于哈希表实现,增删改查效率高,适用于键值映射场景。

2025-06-27 11:05:04 1108

原创 Python基础语法-------列表和元组

本文介绍了Python中列表和元组的基本概念、创建方式及常用操作。列表是可变序列,支持元素增删改查、切片遍历等操作,主要方法包括append、insert、pop等;元组是不可变序列,仅支持读取操作。二者核心区别在于可变性:列表元素可修改,元组创建后不可变。元组优势在于数据安全性(作为不可变对象)和可哈希性(可作字典键)。实际应用中,需要修改元素时选择列表,元素固定时优选元组。文中还详细说明了索引访问、切片操作、遍历方式等共性功能,以及列表特有的增删改方法。

2025-06-21 17:52:06 1138

原创 Python 基础语法 -----函数

本文介绍了Python函数的基本概念和使用方法。主要内容包括:1.函数定义与调用语法,通过def关键字创建函数;2.参数传递机制,包括形参与实参的区别;3.返回值的使用技巧与作用域规则;4.函数嵌套调用和递归的优缺点分析;5.参数默认值和关键字参数等高级用法。文章强调函数在代码复用、逻辑封装中的重要性,并对比了不同写法在工程实践中的适用性差异。同时,通过工厂类比形象说明了函数的输入输出机制,并提供了调试和优化的实用建议。

2025-06-21 12:58:39 887

原创 Python 基础语法(顺序语句、条件语句、循环语句)

摘要:本文介绍了Python中的基本控制结构,包括顺序语句、条件语句和循环语句。顺序语句默认从上到下执行;条件语句使用if/elif/else实现分支逻辑,强调Python独特的缩进语法和pass空语句;循环语句包括while和for两种形式,以及continue和break控制语句。文章详细说明了代码块的缩进规则和条件嵌套的注意事项,并通过实例解释了不同控制结构的使用方法和执行流程。

2025-06-13 22:07:12 864

原创 Python 基础语法

本文介绍了Python编程基础中的几个核心概念:1. 表达式与运算符:Python可进行算术运算,表达式由常量、运算符构成,支持不同类型运算规则。 2. 变量与类型:变量用于存储中间结果,命名需遵守规则;Python是动态类型语言,常见类型包括整数、浮点数、字符串、布尔等,类型决定数据操作方式。 3. 注释:单行注释用#,多行用三引号,强调准确性和可读性。 4. 输入输出:通过print输出,input获取用户输入,需注意类型转换。 5. 运算符:涵盖算术、关系、逻辑、赋值等运算符,解释运算优先级及注意事项

2025-06-13 16:51:10 1100

原创 Python 搭配Python环境

《Python开发环境搭建指南》摘要 本文详细介绍了Python开发环境的搭建步骤:1)安装Python运行环境,包括官网下载、版本选择(推荐Python3)、勾选PATH配置及验证安装;2)安装PyCharm开发工具,重点说明社区版下载、关联Python解释器及创建Hello World项目的过程;3)提供基础配置建议,如调整字体大小和行距。文章强调通过官网获取软件、注意中英文符号差异等关键细节,帮助初学者快速完成环境部署。、

2025-06-06 17:23:44 926

原创 MySQL 表的内连和外连

SQL连接查询主要包括内连接和外连接。内连接(INNER JOIN)通过WHERE子句筛选两表的笛卡尔积,是最常用的查询方式。外连接分为左外连接(LEFT JOIN)和右外连接(RIGHT JOIN):左外连接会完全显示左侧表数据,即使右侧无匹配;右外连接则完全显示右侧表数据。练习示例包括显示员工信息及部门名称,以及查询所有学生成绩(包含无成绩学生)和所有部门信息(包含无员工部门)。这些连接方式满足不同场景的数据查询需求。

2025-06-04 19:29:52 425

原创 MySQL 复合查询

本文介绍了SQL查询练习案例,包含单表查询和多表查询两部分。单表查询部分演示了筛选工资/岗位条件、排序、显示最高工资员工、部门统计等基础操作(7个案例)。多表查询部分通过emp、dept、salgrade三表示范了联合查询(3个案例),重点说明如何消除笛卡尔积。最后介绍了自连接查询方法,通过子查询和表别名两种方式实现员工领导信息查询。这些案例涵盖了SQL基础查询的核心语法,包括WHERE、GROUP BY、HAVING、ORDER BY等子句的使用。

2025-06-04 10:25:22 1027

原创 MySQL 内置函数

本文摘要:本文系统介绍了MySQL常用函数的使用方法,分为四大部分:1)日期函数(获取日期时间、时间戳计算、日期加减等),2)字符串函数(字符集获取、格式显示、字节计算、字符处理等),3)数学函数(绝对值、进制转换、取整、随机数等),4)其他函数(用户信息、加密函数、空值处理等)。每个函数都配有具体语法示例,并包含实际应用练习(如记录生日、留言查询等),帮助掌握数据库操作中的数据处理技巧。

2025-05-29 10:24:28 504

原创 MySQL 基本查询 (表的增删查改)

本文主要介绍了SQL的基本操作语句,包括增删改查四大类。在插入操作(Create)部分,讲解了全列插入、指定列插入以及主键冲突时的处理方式。查询操作(Retrieve)部分详细说明了列选择、WHERE条件、结果排序和分页显示的用法。更新操作(Update)演示了单列和多列修改以及带条件的更新。删除操作(Delete)介绍了delete和truncate的区别。此外还讲解了聚合函数、GROUP BY分组、HAVING筛选以及SQL语句执行顺序等重要概念。全文通过丰富示例演示了各语句的用法和注意事项,为数据库操

2025-05-27 15:09:21 884

原创 MySQL 表的约束

本文介绍了MySQL中几种常见的约束条件及其应用场景。主要内容包括:非空约束(NOT NULL)确保字段不为空;默认值约束(DEFAULT)为字段设置默认值;列描述(COMMENT)用于字段说明;零填充(ZEROFILL)格式化数字显示;主键约束(PRIMARY KEY)保证记录唯一性;自增长(AUTO_INCREMENT)实现自动编号;唯一键约束(UNIQUE)确保字段值不重复但允许为空;外键约束(FOREIGN KEY)建立表间关联关系。这些约束共同作用,保障数据的完整性和业务逻辑的正确性,其中主键和唯

2025-05-26 11:42:52 1129

原创 MySQL 数据类型

文章主要介绍了MySQL中的数据类型及其特性。数值类型包括整型(如tinyint、bit)和小数类型(如float、decimal),其中整型可以指定有符号或无符号,小数类型则涉及精度和范围的问题。字符串类型包括定长(char)和变长(varchar)两种,选择依据是数据的长度是否固定。日期和时间类型如date、datetime和timestamp,分别用于存储日期、日期时间及时间戳。此外,还介绍了枚举(enum)和集合(set)类型,用于存储预定义的选项值。文章强调了数据类型在数据库设计中的重要性,合理选

2025-05-22 12:00:25 846

原创 MySQL 库的操作

本质就是在 /var/lib/mysql 创建一个目录。

2025-05-19 10:42:53 1165

原创 MySQL 数据库基础

数据库是一种专门用于存储、管理和操作数据的系统,相较于普通文件,数据库在数据管理、安全性、查询效率和海量数据处理方面具有显著优势。文件存储存在安全性低、查询不便、管理困难等问题,而数据库通过结构化存储和高效查询机制解决了这些问题。常见的数据库包括MySQL、Oracle、SQL Server等,其中MySQL因其并发性好、易用性强而广泛应用于电商、社交等领域。数据库的核心功能包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)。MySQL采用客户端-服务器架构,支持多种存储引擎

2025-05-14 14:27:53 958

原创 C语言模糊不清的知识

\为一个转义字符算1个字节,123456算6个字节,\123是一个八进制的转移字符算1一个字节,剩下的456\t算4个字节,总共是12个字节。用于创建类型别名的关键字,仅定义类型别名,不分配内存。这是编译器的行为,有类型的检查,作用域受限。malloc底层实现:是调用系统的接口,小内存块利用堆扩展高效管理,大内存用mmap,减少碎片。static修饰的全局变量的链接属性为内部链接,仅限当前文件可见,禁止跨文件访问。数组名是以单个元素为单位,&数组名是以整个数组为单位,他们的数组首地址相同。

2025-05-10 16:27:54 1060

原创 MySQL 在Centos7环境安装MySQL

卸载内置环境说明:安装与卸载中,⽤⼾全部切换成为root,⼀旦 安装,普通⽤⼾能使⽤的。

2025-05-08 15:21:32 2670 1

原创 Linux 网络基础三 (数据链路层协议:以太网协议、ARP 协议)

所有 ARP 层收到数据包后,都会。

2025-04-24 12:57:59 1033

原创 滑动窗口算法(一)

这里我们要移除一个数并且将这个数组完整相当困难,我们可以转变一下思想,这道题想让我们移除的数相加等于这个X,那我们可不可以先算一下这个数组每个元素相加的总数是多少,再把这个总数减去X,所以就转化成数组内相加的数等于sum-X的,并使这个窗口包含的数字够多。right不断遍历,并把right指向的字符记录在hash中,当遇到图上的情况,此时hash中的‘a'字符存在2次,说明这个窗口内有重复的字符,此时的left右移一位,并且更新这个窗口内的字符串的数量。这个算法思想是不是很熟悉,没错,就是滑动窗口。

2025-04-23 20:16:35 797

原创 Linux 网络基础(三) TCP/IP协议

遍历路由表。目的 IP & 子网掩码,找到要去的目标网络,没找到就走默认网关。通过 Iface 发送。注意:IP 没有解决设备转发的具体功能,IP 提供的是转发的策略,核心不是转发,而是路径选择。

2025-04-21 12:44:49 476

原创 Linux 网络基础(二) (传输协议层:UDP、TCP)

因为 TCP 是面向字节流的,所以需要应用层来分开这些报文,如果处理的不好就会出现多读了或者少读了影响到了后续报文,这种问题就叫做粘包。首先要明确,粘包问题中的 “包” 是指的应用层的数据包。在 TCP 的协议头中,没有如同 UDP 一样的 “报文长度” 这样的字段,但是有一个序号这样的字段。站在传输层的角度,TCP 是一个个报文过来的,按照序号排好序放在缓冲区中。站在应用层的角度,看到的只是一串连续的字节数据。

2025-04-20 18:31:46 1870

原创 双指针算法(二)

题目如下:这里我们先认识如何判断是个三角形,a+b>c,a+c>b,b+c>a即为三角形这里我们假设a<=b<=c,这里我们c是最大的,c加任何一个正数都比a或b大,所以我们只需要判断a+b是否>c就可以了。所以我们这里算法思想是固定7后,再固定第二大的数,继续上面的算法逻辑就行。

2025-04-17 15:51:20 994

原创 双指针算法(一)

接着从后往前遍历,cur和dest指向的是模拟完复写完指向的位置。具体操作如下:从后往前完成复写操作。

2025-04-16 18:58:13 849

转载 Linux HTTPS协议完整流程和握手细节

概述HTTPS(Hypertext Transfer Protocol Secure)即超文本传输安全协议,是在HTTP协议基础上加入SSL/TLS(Secure Sockets Layer/Transport Layer Security)协议层,用于在网络传输中保障数据的安全性和隐私性,确保信息在客户端与服务器之间传输时不会被窃取、篡改等。握手目的HTTPS握手过程的核心目的是在客户端和服务器之间建立起一个安全的通信通道,这个通道基于加密算法实现,使得后续双方传输的数据都是加密的。

2025-04-14 12:50:25 64

原创 Linux 网络基础二 ——应用层HTTP\HTTPS协议

网络版计算器例如,我们需要实现一个服务器版的加法器。我们需要客户端把要计算的两个加数发过去,然后由服务器进行计算,最后再把结果返回给客户端。(1)约定方案A. 约定方案一客户端发送一个形如 "1+1" 的字符串。这个字符串中有两个操作数,都是整形。两个数字之间会有一个字符是运算符,运算符只能是 +。数字和运算符之间没有空格。... ...B. 约定方案二定义结构体来表示我们需要交互的信息。

2025-04-14 12:43:34 458

原创 高并发内存池

在说内存池之前,我们得先了解一下“池化技术”。所谓“池化技术”,就是程序先向系统申请过量的资源,然后自己进行管理,以备不时之需。之所以要申请过量的资源,是因为申请和释放资源都有较大的开销,不如提前申请一些资源放入“池”中,当需要资源时直接从“池”中获取,不需要时就将该资源重新放回“池”中即可。这样使用时就会变得非常快捷,可以大大提高程序的运行效率。在计算机中,有很多使用“池”这种技术的地方,除了内存池之外,还有连接池、线程池、对象池等。

2025-04-10 18:02:29 1062

原创 Linux TCP网络套接字

对比 UDP 服务器,TCP 服务器多了获取新链接和监听的操作,而因为 TCP 是面向字节流的,所以接收和发送数据都是 IO 操作,也就是文件操作。

2025-04-01 10:37:49 1102

原创 Linux 云服务器开放端口

这里先点手动添加,再看自己是UDP还是TCP协议,找到对应的协议,目的就填你想开放的端口,源填所有IP/4 0.0.0.0 添加备注点击保存就开放好了。首先找到你买服务器的官网,我这里是阿里云。

2025-03-26 21:53:36 296

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除