自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(314)
  • 资源 (25)
  • 收藏
  • 关注

原创 go处理json

在 Go 中,你可以使用内置的 encoding/json 包来处理 JSON 格式数据。该包提供了函数和类型,使你能够将 JSON 数据解析为 Go 对象(反序列化)或将 Go 对象转换为 JSON 数据(序列化)。

2024-04-18 11:54:23 391

原创 redis常见面试题

Redis全称为:Remote Dictionary Server(远程数据服务),Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。特点1:丰富的数据类型我们知道很多数据库只能处理一种数据结构:传统SQL数据库处理二维关系数据;MemCached数据库,键和值都是字符串;文档数据库(MongoDB)是由Json/Bson组成的文档。

2024-03-25 13:42:35 1231

原创 redis-大key优化

Redis 中的“大 key”问题指的是单个键(key)所存储的值(value)过大,导致影响 Redis 的性能和稳定性。通常情况下,Redis 的设计初衷是将数据存储在内存中,因此单个键的大小应该受到限制,以保证内存的高效利用和系统的稳定运行。

2024-03-20 12:56:57 553

原创 mysql索引失效

在MySQL中,索引失效指的是查询语句无法有效地使用索引,而必须进行全表扫描。索引失效可能会导致查询性能下降,特别是在处理大量数据时。

2024-03-20 12:46:45 671 1

原创 python实现--拓扑排序

拓扑排序是对有向无环图(DAG)进行排序的一种算法,它可以将图中的顶点排成一个线性序列,使得图中的任意一条有向边都从序列中的较早顶点指向较晚顶点。将1号顶点的邻接顶点2号和3号的入度分别减1,得到入度为0的2号和3号顶点,加入队列:[2, 3]将2号顶点的邻接顶点4号的入度减1,得到入度为0的4号顶点,加入队列:[3, 4]将3号顶点的邻接顶点5号的入度减1,得到入度为1的5号顶点,加入队列:[4, 5]将4号顶点的邻接顶点6号的入度减1,得到入度为0的6号顶点,加入队列:[5, 6]

2024-03-20 12:19:25 302

原创 python实现--哈夫曼编码

哈夫曼树(Huffman Tree)和哈夫曼编码(Huffman Coding)是一种用于数据压缩的技术,由David A. Huffman于1952年提出。哈夫曼树是一种特殊的二叉树,用于构建哈夫曼编码。哈夫曼编码是一种变长编码,用于将字符映射到不同长度的比特串,以实现数据的高效压缩。

2024-03-20 12:07:55 345

原创 python实现--二叉搜索树

二叉搜索树(Binary Search Tree,BST)是一种特殊类型的二叉树,它具有以下性质:每个节点最多有两个子节点,分别称为左子节点和右子节点。对于任意节点,其左子树中的所有节点的值都小于该节点的值。对于任意节点,其右子树中的所有节点的值都大于该节点的值。对于任意节点,其左子树和右子树也分别是二叉搜索树。

2024-03-17 15:43:58 967

原创 python实现协程

线程是轻量级的并发模型,适用于IO密集型任务。在Python中,可以使用 threading 模块创建和管理线程,由于全局解释器锁(GIL)的存在,Python中的线程并不能充分利用多核CPU,适合用于IO密集型任务。在Python中,可以使用 asyncio 模块来实现协程,它提供了事件循环(event loop)来调度协程的执行,适合用于IO密集型任务和高并发的网络应用。总的来说,进程、线程和协程是并发编程中常用的三种技术,它们各自有着不同的特点和适用场景,可以根据具体的需求选择合适的并发模型。

2024-03-14 12:30:33 349

原创 python实现B/B+树

B树和B+树都是一种多路搜索树,用于对大量数据进行排序和查找。它们在数据库系统中被广泛应用,特别是用于构建索引结构。

2024-03-10 13:53:05 1067

原创 python实现--分块查找

分块查找将数据集合分成若干个块,每个块内的数据可以是有序的,而块与块之间的顺序可以是任意的。在进行查找时,首先根据块的索引查找到可能包含目标元素的块,然后在该块内进行顺序查找。查找范围缩小:通过索引表可以快速确定目标元素所在的块,从而将查找范围缩小到一个块内,然后在该块内进行顺序查找,从而减少了查找的时间复杂度。构建索引表:将线性表分成若干个块,并为每个块建立索引表,索引表中的元素记录每个块的起始位置和结束位置。块内顺序查找:根据目标元素的值,确定它所在的块,并在该块内进行顺序查找。

2024-03-10 13:46:33 400

原创 python实现--折半查找

以上代码实现了折半查找算法。通过不断缩小查找范围,折半查找算法可以在时间复杂度为 O(log n) 的情况下找到目标元素,其中 n 为数组的长度。它的基本思想是通过每次将查找范围缩小为原来的一半来逼近目标元素,直到找到目标元素或者确定目标元素不存在。如果目标值小于中间位置的元素,则更新右边界 right = mid - 1,缩小查找范围为左半部分。如果目标值大于中间位置的元素,则更新左边界 left = mid + 1,缩小查找范围为右半部分。如果目标值等于中间位置的元素,则返回中间位置作为查找结果。

2024-03-10 13:44:42 489

原创 python实现--顺序查找

顺序查找(Sequential Search),也称线性查找,是一种简单直观的查找算法。它的基本思想是逐个遍历数据集合中的元素,直到找到目标元素或者遍历完整个数据集合。顺序查找适用于无序数据集合,时间复杂度为O(n),其中n为数据集合中的元素个数。

2024-03-10 13:42:23 385

原创 python实现生成树

若(u,v)是一条具有最小叔值的边,其中u∈U, v∈V- U,则必存在一棵包含边(u,V)的最小生成树,基于该性质的最小生成树算法主要有Prim算法和Kruskal算法,它们都基于贪心算法的策略。最后,打印出构建出的最小生成树的边集合。Kruskal算法:Kruskal算法是一种基于并查集的贪心算法,它首先将所有边按权重从小到大排序,然后依次考虑每条边,如果当前边连接的两个顶点不在同一个连通分量中,则将这条边加入最小生成树中,并将这两个顶点合并到同一个连通分量中,直到最小生成树的边数达到n-1为止。

2024-03-10 13:30:19 578

原创 python实现回溯算法

回溯算法是一种经典的解决组合优化问题、搜索问题以及求解决策问题的算法。它通过不断地尝试各种可能的候选解,并在尝试过程中搜索问题的解空间,直到找到问题的解或者确定问题无解为止。回溯算法常用于解决诸如排列、组合、子集、棋盘类等问题。if 满足结束条件: # 如果已经满足结束条件result.append(path[:]) # 将当前路径添加到结果中returnfor 选择 in 候选集: # 遍历所有候选选择if 当前选择合法: # 如果当前选择是合法的做出选择 # 将当前选择添加到路径中。

2024-03-10 13:23:39 1024

原创 广度优先搜索和深度优先搜索

以邻接矩阵表示时,查找每个顶点的邻接点所需的时间为0(V),故总的时间复杂度为0(V²).以邻接表表示时,查找所有顶点的邻接点所需的时间为O(E),访问顶点所需的时间为0(V)),此时,总的时间复杂度为O(V+|E|)。采用邻接表存储方式时,每个顶点均需搜索一次(或入队一次),故时间复杂度为0(V),在搜索任一顶点的邻接点时,每条边至少访问一次,故时间复杂度为 0(E),算法总的时间复杂度为0(V+E)。注意:图的邻接矩阵表示是唯一的,但对于邻接表来说,若边的输入次序不同,生成的邻接表也不同。

2024-03-09 14:07:59 929

原创 python实现桶排序

桶排序(Bucket Sort)是一种排序算法,它将待排序的元素分到有限数量的桶(buckets)中,然后分别对每个桶中的元素进行排序,最后按照顺序将所有的桶中的元素依次取出,即可得到有序序列。桶排序的核心思想是根据待排序元素的大小将它们分配到不同的桶中,然后对每个桶中的元素进行排序,最后将所有桶中的元素合并起来得到有序序列。如果待排序数据均匀分布在各个桶中,则桶排序的时间复杂度为 O(n+k),其中 n 表示待排序元素的数量,k 表示桶的数量。遍历待排序数组,将每个元素根据其值的大小分配到对应的桶中。

2024-03-09 13:27:14 401

原创 nginx使用详解--流控

Nginx可以通过实现流量控制(流控)来限制对服务器的访问并保护其免受过载的影响,限流有以下几种:正常限制访问频率(正常流量)突发限制访问频率(突发流量)限制并发连接数黑白名单配置。

2024-03-01 10:11:59 851

原创 nginx使用详解--动静分离

为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源,如图片、js、css等文件,可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器。对于用户请求的动态文件,如servlet、jsp,则转发给Tomcat,Jboss服务器处理,这就是动静分离。即动态文件与静态文件的分离。

2024-02-29 23:18:37 1022 1

原创 nginx使用详解--缓存

设置nginx服务器在共享内存中为缓存数据建立索引时使用的关键字。

2024-02-29 22:34:56 1616

原创 nginx使用详解--反向代理

正向代理: 一般的访问流程是客户端直接向目标服务器发送请求并获取内容,使用正向代理后,客户端改为向代理服务器发送请求,并指定目标服务器(原始服务器),然后由代理服务器和原始服务器通信,转交请求并获得的内容,再返回给客户端。正向代理隐藏了真实的客户端,为客户端收发请求,使真实客户端对服务器不可见。反向代理: 反向代理(Reverse Proxy)是一种服务器架构模式,它充当服务器和客户端之间的中间层,将客户端的请求转发到多个后端服务器,并将响应返回给客户端。

2024-02-27 20:13:06 1238

原创 DNS详解

DNS(Domain Name System,域名系统)是互联网中的一种分布式命名系统,用于将域名(例如example.com)转换为对应的 IP 地址(例如192.0.2.1)。它充当了互联网上的电话簿,将易记的域名映射到计算机可以理解的 IP 地址。:DNS 的主要功能是进行域名解析。当用户在浏览器中输入一个域名时,操作系统会向本地 DNS 解析器发送查询请求。本地解析器首先检查自己的缓存,如果缓存中没有找到对应的 IP 地址,则会向根域名服务器发送查询请求。

2024-01-22 15:09:53 809

原创 iptables使用详解

iptables 是 Linux 系统上用于配置 IPv4 数据包过滤规则的工具。它可以用于设置和管理防火墙规则,网络地址转换(NAT),网络地址端口转换(PAT)等。iptables 是 Linux 内核中 Netfilter 框架的一部分。

2024-01-22 15:08:11 150

原创 iproute使用详解

iproute,或称为 iproute2,实际上是一套 Linux 内核网络协议栈工具,提供了一组用于配置网络接口、路由表、策略路由等网络参数的命令行工具。它并不是一个单一的命令,而是由多个独立的工具组成,用于替代传统的网络管理工具(例如 ifconfig、route 等),提供更丰富的功能和更灵活的网络配置。

2024-01-22 15:07:40 583

原创 traceroute使用浅析

traceroute命令是一种用于确定IP数据包从源到目标所经过的路由路径的网络诊断工具。它通过发送一系列的ICMP(Internet Control Message Protocol)数据包,来探测到目标主机的路由路径,并在终端输出路由路径上每个节点的IP地址和响应时间。

2024-01-15 19:28:14 872

原创 nginx使用详解--负载均衡

参考链接:https://blog.csdn.net/liulanba/article/details/115557512Session 不共享问题是说,假设用户已经登录过,此时发出的请求被分配到了 A 服务器,但 A 服务器突然宕机,用户的请求则会被转发到 B 服务器。但由于 Session 不共享,B 无法直接读取用户的登录信息来继续执行其他操作。实际应用中,我们可以利用 ip_hash,将一部分 IP 下的请求转发到运行新版本服务的服务器,另一部分转发到旧版本服务器上,实现灰度发布。再者,如遇到文件过

2024-01-13 11:01:42 350

原创 Kotlin中的委托

除了使用标准库提供的属性委托,还可以自定义属性委托来满足特定的需求。一个自定义属性委托需要实现 ReadWriteProperty 接口,该接口包含 getValue 和 setValue 方法。" // 输出: Setting value: Hello, Kotlin!println(example.customProperty) // 输出: Getting value: Hello, Kotlin!

2024-01-13 10:59:45 529

原创 kotlin的泛型浅析

在Kotlin中,泛型是一种强大的编程概念,它允许你编写更加灵活和可重用的代码,同时提高类型安全性。Kotlin的泛型系统与Java的相似,但有一些更强大的特性。

2024-01-13 10:59:05 504

原创 Linux的进程,协程和线程

Linux的进程、协程和线程是计算机科学中重要的概念,它们在操作系统和并发编程中发挥着关键的作用。让我们逐个详解这些概念,并讨论它们之间的关系。

2024-01-11 11:17:17 479

原创 Linux查看物理CPU个数、逻辑CPU个数、核数

1.systemd-detect-virt在虚拟环境中检测执行 ,它可以识别虚拟化技术,并且可以将完整的VM虚拟化与容器虚拟化区分开来。systemd-detect-virt退出,返回值为0(成功)是否检测到虚拟化技术,否则为非零(错误)。默认情况下,任何类型的检测到虚拟化,并且选–container和–vm可用于限制虚拟化的类型 检测到。如果输出为none,则说明是物理机。如果输出下面的信息如vmware,kvm等则表示这是一台虚拟机。

2024-01-09 19:41:18 1429

原创 kotlin的抽象类和抽象方法

在 Kotlin 中,抽象类和抽象方法是面向对象编程中的概念,用于实现抽象和多态性。每个模块可以由抽象类定义,并由具体的子类实现,从而实现更容易理解和维护的代码结构。代码复用: 抽象类可以包含一些通用的实现,子类可以继承这些实现并提供自己的具体实现。抽象性: 抽象类和抽象方法允许我们表示一种抽象的概念,而不涉及具体的实现细节。通过继承抽象类并提供具体实现,可以在运行时使用不同的对象,实现相同的抽象操作。在抽象类中,至少有一个抽象方法。继承抽象类: 创建一个子类,继承抽象类,并提供抽象方法的具体实现。

2024-01-08 12:39:28 808

原创 kotlin的接口详解

在 Kotlin 中,接口(Interface)是一种定义了一组方法的抽象类型。与类不同,接口不能包含状态或字段。接口中的方法可以有默认实现,也可以是抽象的需要在实现类中提供具体实现的方法。

2024-01-08 12:34:51 656

原创 kotlin的注解

在Kotlin中,通过使用 annotation 关键字来定义注解。注解可以包含元素,这些元素可以有默认值。

2024-01-08 12:29:01 614

原创 beego使用布局文件和模板文件进行页面渲染

在 Beego 框架中的控制器基类 Controller 中自定义一个方法,用于渲染模板文件并设置模板数据。这行代码将指定模板文件的布局。Layout是beego.Controller的一个属性,用于定义模板文件的布局。在这里,this.moduleName表示控制器所属的模块的名称,/layout.html表示布局文件的路径和名称。通过设置Layout属性,可以在具体模板中引用布局文件,以便在渲染页面时应用共同的布局结构。这行代码将指定要渲染的具体模板文件的名称。

2023-12-28 13:33:26 834

原创 beego的GetControllerAndAction浅析

默认的控制器和动作的名称解析规则是,去掉控制器名称中的 “Controller” 后,将剩余部分作为控制器的名称,并默认动作名称为 “Index”,因此controllerName 被解析为 “index”,而 actionName 被解析为 “index”。因此,每次请求到达控制器时,都会执行 Prepare() 方法。在 Beego 框架中,GetControllerAndAction 方法是用于获取当前请求的控制器和动作名称的方法,这个方法返回两个字符串,分别代表当前请求的控制器名称和动作名称。

2023-12-28 13:16:14 378

原创 数据库的连接池详解

数据库连接池是一种管理和维护数据库连接的机制,用于提高数据库访问的性能和效率。连接池通过在应用程序启动时创建一组数据库连接,并在需要时将这些连接分配给应用程序,然后在不再需要时将其返回到池中。这可以减少创建和销毁数据库连接的开销,并优化数据库资源的使用。连接的创建和销毁开销:创建和销毁数据库连接是一项开销较大的操作。连接池通过预先创建一组连接,避免了每次请求都创建新连接的开销。这些连接在应用程序启动时初始化,并一直保持活动状态,直到应用程序关闭。

2023-12-26 23:33:34 531

原创 django的通知和信号量

Django 本身并没有内置的通知系统,但有一些第三方库提供了通知的实现,其中比较常用的是 django-notifications。Django 中的通知(Notification)和信号(Signal)是两种不同的机制,用于处理应用程序中事件的触发和响应。使用信号,可以在应用程序内的各个部分之间进行解耦,而使用通知,可以向用户提供有关系统中的事件的信息。信号是 Django 的核心功能之一,而通知通常是第三方库提供的附加功能。信号是一种用于触发和处理事件的通用机制,可用于任何部分之间的解耦。

2023-12-25 23:10:49 1307

原创 linux的软链接和硬链接

在 Linux 中,有两种链接: 硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic Link)。硬链接可认为是一个文件拥有两个文件名;而软链接则是系统新建一个链接文件,此文件指向其所要指的文件。为解决文件的共享使用,Linux 系统引入了两种链接: 硬链接(hard link)与软链接(又称符号链接,即 soft link 或象征链接)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。

2023-12-21 17:28:21 396

原创 grpc的设计和实现浅析

gRPC(gRPC Remote Procedure Call)是一个开源的高性能 RPC(远程过程调用)框架,由Google开发,支持多种编程语言。gRPC 基于 Protocol Buffers(ProtoBuf)序列化协议,使用 HTTP/2 作为传输协议,具有诸多优势,如高效性、多语言支持、IDL(Interface Definition Language)定义服务接口等。

2023-12-20 23:46:40 954

原创 golang开发--beego入门

Beego 是一个基于 Go 语言的开源框架,用于构建 Web 应用程序和 API。它采用了一些常见的设计模式,以提高开发效率、代码可维护性和可扩展性。

2023-12-20 23:37:33 1100

原创 go开发--操作mysql数据库

在 Go 中访问 MySQL 数据库并进行读写操作通常需要使用第三方的 MySQL 驱动。Go 中常用的 MySQL 驱动有和等。

2023-12-20 18:30:03 485 1

Scrapy爬取多级网页内容源代码加实现.txt

多级网页结构爬取99健康网的信息,用了多种网页反爬取,获取疾病信息。

2019-07-18

Scrapy爬取豆瓣图书Top250代码实现.txt

爬取豆瓣网图书TOP250的信息,只有一级网页结构,可以帮助初学时入门。

2019-07-18

OpenCV处理图像分类.txt

使用Opencv进行特征提取,并且对图像中的物体进行标注,具有很高的识别率。

2019-07-18

LSTM处理三分类问题.txt

用LSTM进行三个文本的分类,进行情感分析和文本分类,入门的NLP案例。

2019-07-18

CNN-SVM.txt

用CNN提取图像特征,并用SVM进行图像分类,适合小数量级的图像分类,而且是入门机器学习不错的案例。

2019-07-18

AI处理X光胸片.txt

可以提取X光片的特征,并进行分析处理,为患者更好的认知自己的病情提供了可视化。

2019-07-18

AI处理X光片.txt

用AI进行X光片的特征提取,进行可视化展示,更好的帮助医生,并为患者提供对病情更好的认知。

2019-07-18

AI处理X光骨骼图像.txt

代码工具,AI处理X光片图像,可以用于医疗研究,帮助医生患者更好的发现X光片的特征。

2019-07-18

国际疾病诊断编码ICD11+ICD10

包含ICD10和ICD11编码,国际疾病诊断编码ICD11,可以帮助更好的找到索引,建立数据库。

2019-06-20

种子填充.txt

包含python Opengl种子填充算法的单色填充和双色填充,简单易懂

2019-06-12

微信自动给女朋友发消息.txt

程序员有时候很忙,忘记给女朋友发消息,用这个程序可以帮助你24小时关心女朋友,还可以加入你自定义的语句

2019-06-12

身份证前6位对应城市.txt

该文件包含身份证前六位对应的城市代码,可以帮助需要的开发者输入身份证自动得到城市信息。

2019-06-12

几何变换.txt

含有python Opengl的几何变换,包含平移旋转缩放以及多种变换的复合形式

2019-06-12

python OPENGL画线.txt

含有Python OPengl的多种画线算法,包含DDA 中点算法 圆的逼近算法 中点画圆法

2019-06-12

dlib-19.7.0.txt

安装人脸识别库face_recognition需要的dlib19.7.0库,注意需要在py36环境下支持。

2019-05-22

Python排序算法

包含多种Python的排序算法,可以帮助使用者更好的理解各种排序算法的Python实现!

2019-03-28

Python实现画小猪佩奇

用Python实现的画小猪佩奇,可以动态画出佩奇,可以自行调整相关参数,画出你自己的佩奇!

2019-03-28

100道简单的python练习题

包含100道简单的python练习题,可以给刚入门Python的同学提供联系的用途,附答案,可以自己对照检查!

2019-03-28

Kali使用全部资料

包含Kali的全套学习资料,可以帮助做渗透分析,网络安全的人提供从入门到精通的全部资源!

2019-03-28

黑客攻防从入门到精通

该书籍包含相应工具,适合初学者一步步学习网络安全相关原理,包含网络攻防的知识和工具,让使用者了解攻击原理,懂得防御措施。

2019-03-25

Tensoeflow资料

含有Tensorflow实战,Tensor flow技术讲解,Tensorflow官方文档,可以让机器学习的爱好者从浅入深的学习Tensor flow!

2019-03-23

Scrapy爬虫

Python的Scrapy爬虫,可以在百度图片里面根据关键字爬取图片,可以直接在DOS模式下或者在Python的IDE平台上面运行,爬取图片会自动安装到爬虫所在的文件夹下!

2019-03-23

PhotoShop CS6安装包

PhotoShop CS6安装包,支持32位和64位,安装之后将对应版本的破解补丁复制,替换掉安装目录下的相应文件,即可使用!注意在断网条件下安装。

2019-03-23

机器学习:猫和狗的图片训练图片25000和测试集12500

百度网盘链接:内有用于机器学习,测试猫狗的原始图片,包含训练数据25000,测试数据125000,可以为机器学习练习提供必要的数据集!

2019-03-23

superscan4.0 正版

superscan4.0是一个强大的端口扫描工具,它支持对局域网主机开放端口进行扫描,是黑客进行入侵攻击的第一步,有效,高速的扫描,可以帮助黑客快速入手攻击!

2019-01-08

空空如也

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

TA关注的人

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