自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jakelihua

极客李华的博客

  • 博客(1463)
  • 收藏
  • 关注

原创 MySQL索引设计-从条件顺序到范围查询的优化策略

本文系统解析了MySQL索引设计策略,重点针对条件顺序不确定和范围查询场景提供优化方案。核心内容包括:单独索引与复合索引的特性比较;四种典型查询场景下的索引选择策略;范围查询对复合索引的截断机制分析;以及覆盖索引、执行计划验证等补充建议。文章强调应根据查询模式(等值/范围、字段顺序)设计复合索引,利用最左前缀原则优化性能,同时需权衡索引维护成本与实际查询需求。通过合理设计索引结构和验证执行计划,可显著提升数据库查询效率。

2025-07-24 23:00:27 730

原创 通俗讲解-为什么协程要比线程快

摘要:协程比线程快主要体现在三个方面:1)协程是用户态轻量级实现,内存占用仅几KB,可轻松创建百万级实例;2)协程切换仅需保存关键寄存器,纳秒级完成,而线程切换涉及内核态转换,耗时数微秒;3)Go的GMP调度模型实现智能负载均衡,当协程阻塞时能快速切换任务,充分利用CPU资源。这些特性使协程在并发性能上远超线程。

2025-07-22 18:52:51 141

原创 Redis与数据库一致性

Redis与数据库一致性是高并发系统的关键问题。本文提出"先更库,再删缓存"的核心方案,通过缓存旁路模式确保数据一致性。读取时缓存优先;插入时先存库再写缓存;更新时先更库再删缓存;删除时先删库再删缓存。高并发场景通过乐观锁防脏写,利用缓存删除的幂等性,并引入异步重试机制。这一方案简单可靠,性能均衡,适合多数业务场景,是平衡性能与一致性的最优解。

2025-07-22 18:38:14 403

原创 golang map面试考点

Go map面试考点摘要 底层数据结构 Go的map基于哈希表实现,核心是hmap结构:包含桶(bucket)数组,每个桶(bmap)可存8个键值对。通过哈希函数定位桶,tophash(高8位)加速筛选,精确比较键值。 哈希冲突处理 采用链地址法:当桶满时创建溢出桶。系统会: 计算键哈希值 用低B位确定桶位置 用高8位快速筛选 遍历桶链(含溢出桶)进行精确匹配 相同哈希不同键的处理 即使不同键哈希相同: 仍会定位到同一桶链 通过逐字节比较键值来区分 精确匹配后才返回值 未匹配则返回零值 这种设计保证了O(1

2025-07-22 16:57:32 834

原创 文档分割提高RAG的常用技巧

摘要:文档分割技巧优化RAG系统 文档分割是提升RAG系统性能的关键环节,主要影响检索效率、精度和生成质量。核心技巧包括:1)固定长度分割法,适用于标准化文档,需优化chunk_size和重叠参数;2)结构化分割法,利用标题等标记保持语义完整;3)递归分割法,分层处理混合内容。实施时需考虑文档特性、语义单元完整性、LLM上下文限制和检索效率平衡,并通过实验确定最佳参数。合理分割可提升生成答案准确性40-60%,需避免切断关键信息或产生冗余。(149字)

2025-07-11 17:22:17 963

原创 客户端请求服务端用什么限流算法好-思路分析分享

客户端限流算法选择需结合业务场景需求。主流算法包括:1)令牌桶算法:允许合理突发流量,适合用户体验要求高的场景;2)漏桶算法:输出速率绝对恒定,适用于金融等高稳定性领域;3)时间窗口算法:分为固定窗口(简单但有双倍流量风险)和滑动窗口(更精确但实现复杂)。工作流系统推荐使用令牌桶算法,因其能自然适应突发请求、保持执行连贯性,相比漏桶减少延迟,比窗口算法更平滑。关键考量维度包括突发处理能力、实现复杂度及资源利用率。

2025-07-10 17:09:10 596

原创 一个案例演示什么是RAG+Prompt工程

本文通过"算命大师"案例演示了RAG(检索增强生成)技术的应用。RAG结合信息检索与文本生成,首先检索知识库相关内容,再结合用户查询生成回答。案例展示了一个完整实现:使用FAISS向量数据库存储命理知识文档,通过Prompt工程设定AI为"算命大师"角色,最终生成具有神棍风格的个性化解读。代码展示了文档处理、向量化存储和问答交互的全流程,证明RAG能有效扩展大模型能力边界,实现可追溯、个性化的智能应用。

2025-07-07 17:51:05 178

原创 基于Redis实现生产级消息队列

本文介绍了一种基于Redis实现的生产级消息队列方案,通过多队列协同架构(主队列、处理中队列、死信队列)实现消息可靠流转。核心设计包括使用Redis List和String数据结构存储消息及处理状态,通过Lua脚本保证操作的原子性,以及连接池优化和超时控制等生产级特性。方案提供了完整的消息生命周期管理,包括消息入队、消费、确认和重试机制,确保消息不丢失且不重复消费,同时保持了轻量级部署的优势。

2025-07-06 17:52:27 148

原创 加锁与令牌桶算法-限流设计对比

本文对比了两种Go语言限流算法实现:令牌桶算法和加锁限流算法。令牌桶算法通过channel模拟令牌桶,以恒定速率补充令牌,提供阻塞(Wait)和非阻塞(Allow)两种获取方式,后台协程定时补充令牌,适合需要平滑限流的场景。加锁限流基于时间窗口计数器,使用互斥锁保护计数,窗口超时自动重置,严格限制单位时间请求量,适合需要硬性QPS控制的场景。两种方案各有特点,令牌桶允许短时突发流量,而加锁限流提供更精确的时间窗口控制。

2025-07-06 12:12:15 772

原创 大模型应用开发基础-Prompt工程

Prompt工程是优化大语言模型输入指令的技术,旨在提高输出准确性、减少歧义。核心技巧包括:1)明确需求,用动词驱动任务并限定范围;2)角色扮演,指定AI专业身份;3)结构化输出;4)提供示例;5)分步引导。通过精准Prompt设计(如限定字数、指定领域),可避免模型自由发挥,生成更符合预期的结果。例如,模糊Prompt"介绍机器学习"会得到泛泛回答,而优化后的Prompt能输出结构化的专业内容。

2025-06-23 17:30:23 839

原创 如何设计一个工作流系统分享

本文介绍了一种基于插件化架构的工作流系统设计方法,包含两种实现方案: 固定工作流:通过明确定义的插件顺序(采集→处理→发布)构建数据处理流水线,使用通道(channel)实现插件间数据传递,适合简单稳定的处理流程。系统包含数据定义、采集插件、处理插件和发布插件,通过Go协程实现并发执行。 可插拔工作流:采用动态插件注册机制,通过插件元数据(名称、端点、类型等)实现灵活编排。系统架构包含插件注册中心、工作流构建器、执行器等核心组件,插件可作为独立服务运行,支持不同类型(采集、流处理、批处理、发布)的自由组合。

2025-06-20 16:58:42 1016

原创 Golang GMP模型解析

Go语言的GMP模型创新地解决了传统并发编程的三大痛点:Goroutine作为轻量级任务(初始栈仅2KB),Processor负责调度分发,Machine与OS线程1:1绑定。该设计实现多核高效利用:通过Processor本地队列和工作窃取算法平衡负载;处理阻塞调用时解耦Machine与Processor,保证调度连续性;对比传统线程方案,单机承载能力提升200倍(百万级Goroutine vs 数千线程)。核心突破在于用户态调度、动态栈扩展和网络轮询机制,既降低了内存消耗,又实现了真正的并行执行。

2025-06-08 21:13:40 801

原创 从小白视角理解什么是MCP

⚠️陷:双Prompt架构虽区分了“身份”与“任务”,互,如同给囚徒递纸条——信息无法突破牢笼。:模型如同,只能复述书本知识,无法感知现实世界动态。---案例:某客服系统依赖200+精细Prompt,模型升级后30%指令失效,修复耗时相当于重开发。此阶段局限本质上源于,直接催生了Agent与工具调用技术的诞生。:通过三组件,赋予大模型动态执行复杂任务的能力,实现“认知-决策-执行”闭环。✅:AI Agent使大模型从“被动应答者”升级为“主动执行者”,首次实现端到端任务闭环。

2025-06-06 21:01:21 667

原创 功能设计-如何设计一个回调功能

回调(Callback)是一种常见的异步编程模式,主要用于服务间的异步通信。当服务A需要服务B执行某个耗时操作时,服务A不会一直等待服务B完成,而是提供一个回调地址,服务B完成操作后主动通知服务A。

2025-06-06 20:58:16 459

原创 Java与Golang核心语法区别

Go 开发者优先使用短声明:=简化代码全局变量使用显式类型声明提高可读性利用var()块组织相关声明Java 开发者注意局部变量必须初始化类成员变量需要明确访问修饰符Java 10+ 可合理使用var简化代码跨语言注意Go 的数组是值类型(赋值会拷贝),Java 数组是引用类型Go 没有final关键字,常量用const声明Java 的static变量在 Go 中通过包级变量实现类似功能2.

2025-06-06 20:56:08 821 1

原创 postman使用小技巧:如何快速构建一个页面的测试

postman快速构建url测试

2024-07-16 14:40:17 450 1

原创 爬取一本小说的python爬虫代码

简介:本文分享一个python爬取网站小说代码演示。

2024-06-22 17:51:59 1292

原创 大流量下的高可用策略(以商品秒杀为例子)

如果后端服务出现问题,如响应时间过长或错误率超过阈值,熔断器会打开,阻止流量进入后端服务。:对于触发熔断机制的请求,系统会返回友好的用户提示或提供备选方案,而不是直接暴露系统问题给用户。:后端服务接收到请求后,首先尝试获取分布式锁,以确保同一时间只有一个请求能够操作库存。:后端服务从消息队列中取出消息,并再次检查库存,以确保在请求排队期间库存没有发生变化。:如果后端服务运行正常,熔断降级服务允许请求继续流向后端服务。:对于库存充足的请求,服务会处理订单,并将请求放入消息队列中。返回友好提示或备选方案。

2024-05-24 14:00:10 809

原创 正向代理与反向代理

定义:反向代理是位于服务器和客户端之间的服务器,客户端通过反向代理服务器来访问后端的多个服务器。例子:假设你访问一个大型电商平台,该平台后端有多个服务器处理不同的业务,如商品展示、订单处理、用户管理等。当你发起一个请求时,反向代理服务器会根据请求的内容将请求转发到后端的相应服务器,并将服务器的响应返回给你。特点:客户端通常不知道后端服务器的地址和端口。反向代理服务器可以作为负载均衡器,将请求分发到多个后端服务器。可以提高安全性,隐藏后端服务器的详细信息。

2024-05-24 13:22:19 400

原创 红黑树与平衡二叉树的比较及HashMap中红黑树的应用

定义与平衡条件平衡二叉树(AVL树)是一种特殊的二叉搜索树,其中任何节点的两个子树的高度差不超过1。这种严格的平衡条件使得AVL树的高度保持在较低水平,从而保证了所有操作的效率。红黑树则是一种更为宽松的自平衡二叉搜索树。它通过五种性质来保持平衡:每个节点要么是红色要么是黑色,根节点是黑色,所有叶子节点(NIL节点)是黑色的,红色节点的两个子节点都是黑色的,以及从任一节点到其每个叶子的所有路径包含相同数目的黑色节点。

2024-05-19 23:26:32 305

原创 常见索引失效的情况

【代码】常见索引失效的情况。

2024-05-19 23:20:40 251

原创 库充管理系统库存查询,库存增减功能设计

在库存管理系统中,最核心且复杂、通常需要用到索引优化的功能是库存的实时更新和查询。

2024-04-26 00:48:44 338 2

原创 redis中的锁SETNX

Redis 提供了多种方式来实现锁操作,这些操作可以帮助开发者在多线程或分布式环境中同步访问共享资源。

2024-04-26 00:18:49 1521 1

原创 数据库的事务

原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会结束在中间某个环节。一致性(Consistency):事务必须使数据库从一个一致的状态转移到另一个一致的状态。隔离性(Isolation):并发执行的事务之间不会互相影响。持久性(Durability):一旦事务提交,它对数据库的改变就是永久性的,即使系统发生故障也不会丢失。

2024-04-26 00:13:52 327 1

原创 mysql索引类型表

mysql索引类型表索引类型描述MySQL中的适用性B树/B+树应用主键索引确保列的唯一性,一个表只能有一个主键索引自动创建,除非指定非聚簇索引B+树唯一索引确保列的值唯一,可以有多列,表中可以有多个强制值的唯一性,适用于需要保证数据唯一性的列B树/B+树非唯一索引允许列的值重复,适用于不强制数据唯一的查询优化常用于辅助查询,提高检索效率B树/B+树组合索引在多个列上创建的索引,提高复合查询条件的检索效率适用于经常一起使用的列组合B树/B+

2024-04-25 23:31:54 195

原创 基于Java的Queue容器做一个简单的的消息队列

是一个泛型类,它允许你创建一个可以存储任何类型对象的队列。这里的T是泛型参数,代表队列中存储的消息类型。

2024-04-25 22:05:51 356

原创 redis持久化RDB与AOF的对比

Redis提供了两种主要的持久化机制:RDB(Redis Database)和AOF(Append Only File)。

2024-04-25 21:20:44 1411

原创 在Redis中缓存用户Token的推荐方法

字符串数据结构在Redis中用于存储简单的键值对,是最基本的数据类型。由于Token本质上是键(用户ID或会话ID)和值(Token字符串)的映射,字符串类型非常适合这一用途。使用string类型与使用Hash类型的对比表格。

2024-04-25 21:05:21 1571 1

原创 商品信息在redis中使用Hash结构进行缓存

简介:在商城里面,推荐使用redis的Hash结构缓存商品信息。下面代码演示怎么使用redis中的Hash结构,缓存商品的信息。类,它使用Jedis客户端与Redis服务器进行交互。方法将商品信息存储到Redis的Hash中,而。方法则从Redis的Hash中检索商品信息。在这个示例中,定义了一个。

2024-04-25 20:45:46 375 1

原创 redis中的数据结构与对应的设置命令

在Redis中,每种数据类型都有其特定的命令来设置(声明)和获取键值对。

2024-04-25 19:28:49 937

原创 redis5种基本类型与Java中的Map之间的类比

在Java中,Map是一种键值对的集合,可以用来存储具有映射关系的数据。Redis同样提供了多种数据类型,每种类型都可以存储键值对数据,但它们在功能和使用场景上有所不同。以下是这些数据类型与Java。

2024-04-25 19:24:38 436

原创 什么是CMS系统

CMS,即内容管理系统(Content Management System),是一种用于创建、发布和管理大量内容的软件应用。CMS系统广泛应用于媒体公司、新闻网站、企业网站等,它帮助内容创作者和管理者高效地处理网站内容的更新和维护。

2024-04-25 15:57:58 2760

原创 使用java简单模拟Jmeter的压测操作

简介:本文演示怎么用java模拟Jmeter的压测操作。

2024-04-25 15:53:53 1254 2

原创 为什么性别字段不需要索引

在数据库设计中,索引通常用于提高查询效率,但并非所有字段都适合建立索引,尤其是具有低基数特性的字段,如性别字段。

2024-04-25 01:20:33 931

原创 越权攻击入门讲解

越权攻击(Authorization Bypass)是一种安全漏洞,它允许攻击者访问或操作他们本不应该有权限的资源或数据。这种攻击通常发生在应用程序的身份验证和访问控制机制未能正确实施时。

2024-04-24 23:00:58 586

原创 跨站脚本攻击(XSS)的演示与防范

使用提供XSS防护的框架,如React的JSX、Spring Security。:在显示用户输入的数据时,对特殊字符进行编码,如HTML实体。:对所有用户输入进行严格的验证,拒绝不合法的输入。会自动转义内容,防止XSS攻击。,限制可以执行脚本的来源。:通过设置HTTP头。或安全的DOM操作。Thymeleaf的。

2024-04-24 22:22:55 383 1

原创 状态码在后端开发中常常遇到的场景

Nginx:当Nginx作为Web服务器正在处理请求,但客户端在响应发送前断开了连接,Nginx可能会记录499状态码。这种情况可能由网络问题、客户端程序错误或客户端机器故障引起。场景:在服务器还在处理请求时,客户端已经关闭了连接。

2024-04-24 22:12:01 1157 3

原创 TCP与UDP协议:区别、应用场景

在网络通信中,TCP(传输控制协议)和UDP(用户数据报协议)是两种核心的传输层协议,它们在数据传输的可靠性、速度以及使用场景上有着显著的区别。

2024-04-24 22:00:25 1042 1

原创 当用户在浏览器搜索一个内容的时候,这个网络的具体过程

浏览器中搜索某个内容时,整个过程涉及多个步骤,包括用户界面交互、网络协议处理、服务器端处理和最终的搜索结果返回。

2024-04-24 21:52:41 751 2

原创 扑克牌中的“顺子”检测

在扑克牌游戏中,玩家们经常会寻找手中的牌是否能组成一个“顺子”,即连续的五张牌。例如,在一副去掉大小王的扑克牌中,黑桃3、4、5、6、7可以组成一个顺子。为了增加游戏的趣味性,有时会引入“赖子”或称为“百搭牌”,它可以代表任何一张牌。在这种情况下,如果玩家手中的牌包含0(代表赖子),则判断顺子的规则会有所变化。编写一个程序,用于检测玩家输入的一组扑克牌数字(不包含大小王)中是否包含一个“顺子”。在这个例子中,0可以代表任何一张牌,使得10、J(11)、赖子(0)、Q(12)、K(13)成为顺子。

2024-04-24 21:04:37 788 1

python画樱花树,python画图案例

python画樱花树,python画图案例

2024-01-13

python五子棋,含有AI智能对战

python五子棋

2024-01-13

typora老版+word插件

typora老版+word插件,我整合出来方便大家下载。

2023-12-04

Java课程设计,常见的扫雷游戏

这是一个java的课程设计。

2023-02-20

动物换位源代码,Java课程设计

Java课程设计,动物换位源代码。

2023-02-19

空空如也

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

TA关注的人

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