- 博客(89)
- 收藏
- 关注
原创 【Golang】Go 语言实现高可用、用户态感知与多端广播的服务端 SSE 架构
本文介绍了使用Go语言实现高可用SSE(Server-Sent Events)服务端架构的方案。相较于WebSocket,SSE基于HTTP协议,具有天然的断线重连机制,适合服务端流式推送。文章重点解决了用户态管理问题,包括多端登录和连接生命周期管理,设计了一个线程安全的连接管理器(SSEManager),采用两级映射关系和读写锁保证并发安全。提供了完整的Go实现代码,包含客户端连接管理、消息推送和资源回收等功能,并演示了本地验证流程。该架构支持一号多端、精准推送和防重机制,适用于实时消息通知等场景。
2026-08-09 20:54:34
211
原创 【Agent】智能客服系统设计要点
本文总结了智能客服系统的设计要点,分为五个部分: 系统定位与架构分层:强调智能客服是嵌入现有客服体系的AI入口,采用LLM Agent+RAG+业务集成+渠道UI的技术栈,需分离Agent运行时状态和业务实体状态。 安全模型:指出Prompt不能作为写操作的安全边界,必须结合代码硬约束(如RBAC、状态机等),并给出读/写操作的安全防线优先级。 业务能力边界:明确智能客服主要承担查询和申请受理角色,不应直接修改订单/资金状态,关键操作应由后端服务驱动。 落地场景与痛点:分析售前、售中等不同场景的应用,列举十
2026-06-14 21:13:44
252
原创 【Agent】如何为 AI Agent 设计高可用的 Tools
摘要 本文探讨了如何为AI Agent设计高可用工具(Tools)的核心原则与方法。文章指出,工具是连接大语言模型与外部系统的关键桥梁,其设计质量直接影响Agent的实际效能。作者提出四大黄金法则:1) 原子化设计原则,2) 精准描述Docstring,3) 强类型参数约束,4) 防御性错误处理。同时分析了工具调用技术从文本匹配到原生JSON结构的演进过程,强调现代框架如LangGraph的优势。最后,文章建议在生产环境中设置熔断机制(如最大迭代次数)来防止模型死循环。全文聚焦于通过工程化手段构建确定性边界
2026-06-14 21:07:08
268
原创 【Agent】ReAct 核心架构与设计哲学
Reasoning(推理)Acting(行动)ReAct\text{Reasoning(推理)} + \text{Acting(行动)} = \text{ReAct}Reasoning(推理)Acting(行动)ReAct以 CoT 为代表。模型在脑海中一步步推导(如:“第一步应该…,第二步应该…”),但由于完全不与外部环境交互,一旦遇到知识盲区,只能盲目续写。以早期的 API 联动为代表。
2026-06-14 21:01:59
377
原创 【RAG】RAGAS 评估框架与 Python 代码实践
RAGAS评估框架摘要 RAGAS是业界主流的RAG系统自动化评估框架,解决了传统评估中的两大痛点:主观盲测和线上同步打分代价高。其核心思路是解耦评估系统,利用大模型作为异步裁判进行离线审计。 框架包含四项关键指标: Faithfulness(0-1分):检测回答是否基于检索内容,避免幻觉 Answer Relevancy(0-1分):评估回答与问题的相关性 Context Precision(0-1分):检查检索结果的排序质量 Context Recall(0-1分):验证核心信息是否被检索到 实现需注意
2026-05-31 15:59:39
294
原创 【大模型对话】大模型对话送审核心知识点
在对话流程中,将用户提问和模型流式生成的回答提交至内容审核服务,通过异步事件回调驱动业务侧中断输出、通知客户端、记录审计日志。阶段送审内容触发时机输入送审用户问题发起 LLM 请求前输出送审累积的回答文本每个流式 chunk 到达时双端送审— 输入 + 输出均覆盖,降低内容风险漏检异步非阻塞— 审核与流式生成并行,事件驱动打断灰度可控— 配置白名单 + 热更新,按应用 / 租户逐步放量多语言适配— 语言检测 + 非母语输出拼接上下文送审精准过滤— 仅对指定违规类型触发打断,减少误杀。
2026-05-31 15:56:39
305
原创 【RAG】Milvus 混合检索参数调优:ef / candidate_k / final_k 详解
本文详细介绍了Milvus混合检索中的三个关键调优参数:ef、candidate_k和final_k。final_k是最终返回结果数,candidate_k是每路检索的候选条数,ef控制HNSW算法的搜索范围。三者呈层级关系:ef≥candidate_k≥final_k。文章通过代码示例展示了参数的实际应用,解释了candidate_k需要大于final_k的原因(防止优质结果被遗漏),并深入分析了ef在HNSW图搜索中的工作机制。最后给出了参数调优的经验值(如ef≈2*candidate_k)和使用注意事
2026-05-31 15:51:19
445
原创 【RAG】召回(Retrieval)与重排(Rerank)核心技术要点汇总
本文总结了RAG系统中召回(Retrieval)与重排(Rerank)的核心技术要点。召回阶段采用双塔模型快速筛选候选文本(关注查全率),重排阶段使用交叉编码器进行深度语义排序(关注查准率)。企业级部署可选择微服务化方案或商业化API服务。生产环境应采用多级漏斗架构,并注意截断机制、降级策略和安全合规问题。关键点在于平衡效率与精度,确保系统的高性能和可靠性。
2026-05-31 15:48:25
402
原创 【RAG】文本切片(Chunking)参数设置指南
RAG文本切片参数设置指南摘要 检索增强生成(RAG)系统中,文本切片参数chunk_size和chunk_overlap的设置直接影响检索效果和回答质量。关键设置原则包括: 参数作用:块大小决定信息粒度,重叠大小保障上下文连贯性 设置依据:需平衡大模型限制、文本类型和Embedding模型能力 典型配置: 叙事型文本:500-800字块+20-25%重叠 独立条目:100-300字块+10%重叠 代码类:按结构切分,几乎不重叠 优化建议:以实际检索召回率为评估标准,避免极端切分,进行多组对比测试 最佳参数
2026-05-31 15:45:09
405
原创 【向量数据库】Milvus 稠密与稀疏向量核心解析
本文解析了Milvus中稠密向量与稀疏向量的核心概念与应用。稠密向量擅长语义理解,表现为固定长度的高维浮点数组;稀疏向量则专注于精准字面匹配,采用权重矩阵结构。文章详细阐述了L2、COSINE和IP三种距离度量方式的适用场景,以及归一化带来的性能优化。特别强调了BM25稀疏向量的抗噪机制和多路混合检索的实现逻辑,包括Python代码示例。最后指出生产环境中必须保持模型一致性,并提供了不同业务场景下的推荐检索方案和架构建议。
2026-05-24 17:31:05
551
原创 【Redis】三种缓存问题(穿透、击穿、双删)的 Golang 实践
本文介绍了Redis缓存三大问题(穿透、击穿、双删)的Golang解决方案。针对缓存穿透问题,通过缓存空值和布隆过滤器来防护无效查询;针对缓存击穿问题,采用互斥锁机制确保热点key失效时只有一个请求能访问数据库;针对缓存一致性问题,使用延迟双删策略保证数据同步。文中提供了用户查询和商品查询两个具体场景的Golang实现示例,包含完整的代码实现和关键逻辑说明,如空值缓存有效期设置、互斥锁控制等核心要点,帮助开发者快速落地到实际业务中。
2025-10-21 18:53:54
1432
2
原创 【Redis】Scan 命令使用教程:高效遍历海量数据
Redis Scan 命令是高效遍历海量数据的关键工具,相比阻塞式的 KEYS 命令具有显著优势。Scan 采用游标迭代机制,支持分批、非阻塞遍历,适用于统计、清理、校验等场景。其实现基于哈希表遍历,通过渐进式 rehash 兼容扩容情况,保证数据完整性。使用时可结合 MATCH 模式筛选和 COUNT 参数优化性能,但需注意游标传递和可能的重复结果。建议在从库执行高频遍历操作,并适当调整 count 值以平衡效率与资源消耗,是处理大规模 Redis 数据的首选方案。
2025-09-10 19:12:24
1679
原创 【Redis】布隆过滤器使用介绍:高效判重的利器
文章摘要 Redis 布隆过滤器是一种高效的空间节约型概率数据结构,用于快速判断元素是否可能存在于集合中。其核心优势在于极低的空间消耗和O(1)查询速度,但存在一定误判率(不会漏判)。适用于缓存穿透防护、爬虫去重等场景。Redis通过RedisBloom模块提供布隆过滤器功能,支持动态扩容和参数配置。使用时需注意其无法删除元素和需预设容量的特点。实践案例展示了如何用布隆过滤器防止缓存穿透,先过滤无效请求再查询缓存和数据库。
2025-08-21 09:45:00
878
原创 【Redis】ZSET 使用介绍:有序集合的进阶应用
本文介绍了Redis中的有序集合(ZSET)这一数据类型,它兼具集合的唯一性和有序列表的特性。ZSET通过跳跃表和哈希表协同工作,实现高效的元素存储与排序。文章详细讲解了ZSET的核心特性、数据结构原理、常用命令(如ZADD、ZSCORE、ZRANGE等)以及高级应用场景(排行榜、延时任务等),并提供了使用注意事项。ZSET凭借其有序存储和高效查询的特点,是处理排名、计分等场景的利器,合理使用可以显著提升业务系统性能。
2025-08-13 09:20:47
1074
原创 【Golang】pprof 使用介绍:从数据采集到可视化分析
本文全面介绍了Go语言性能分析工具pprof的使用方法。pprof通过采样和插桩技术收集CPU、内存、goroutine等运行时数据,支持命令行和Web可视化分析。核心使用流程包括:通过net/http/pprof集成数据接口,用curl命令采集性能文件,再结合go tool pprof生成火焰图、调用图等可视化结果定位性能瓶颈。pprof具有轻量集成、灵活采集和直观分析的特点,是Go开发者优化程序性能的必备工具。
2025-08-12 09:24:56
1493
原创 【Golang】WaitGroup 实现原理
在并发编程中,协调多个 goroutine 的执行顺序和同步是一个常见的需求。Golang 提供了 sync.WaitGroup 来简化这一过程。WaitGroup 允许主 goroutine 等待一组 goroutine 完成工作。本文将详细介绍 sync.WaitGroup 的实现原理及其使用方法,帮助读者更好地理解和应用这一工具。1. 什么是 sync.WaitGroupsync.WaitGroup 是 Golang 标准库中的一个同步原语,用于等待一组 goroutine 完成。
2024-12-02 11:57:45
1073
原创 【Golang】Channel的ring buffer实现
在并发编程中,channel 是 Golang 提供的一种用于 goroutine 之间通信的机制。channel 的底层实现是一个环形缓冲区,这种设计使得 channel 在处理大量数据传输时能够保持高效。本文将详细介绍 Golang 中 channel 的环形缓冲区实现原理,帮助读者更好地理解 channel 的工作机制。1. 环形缓冲区的基本概念环形缓冲区(ring buffer),也称为循环缓冲区,是一种固定大小的缓冲区,逻辑上将其首尾相连形成一个环。当缓冲区满时,新的数据会覆盖最旧的数据。
2024-11-11 11:57:22
1133
原创 【Golang】Golang的CSP模型介绍
在现代软件开发中,并发编程是提高程序性能和响应速度的重要手段。传统的并发编程通常依赖于线程和锁机制,容易导致复杂的同步问题和死锁。Golang 采用了 CSP(Communicating Sequential Processes,通信顺序进程)并发模型,通过 goroutine 和 channel 提供了一种更为简洁和安全的并发编程方式。本文将详细介绍 Golang 的 CSP 并发模型及其使用方法。1. 什么是 CSP 模型。
2024-11-06 12:01:57
1136
原创 【Golang】Golang的Map的底层原理
在 Golang 编程中,map 是一种常用的数据结构,用于存储键值对。map 提供了高效的查找、插入和删除操作,是开发者在日常编程中不可或缺的工具。本文将详细介绍 Golang 中 map 的底层原理,帮助读者更好地理解 map 的实现机制和使用方法。1. map 的基本概念map 是一种哈希表(Hash Table),通过键(key)来快速查找对应的值(value)。在 Golang 中,map 的定义和使用非常简单fmt.Println(m["foo"]) // 输出:422. map 的底层结构。
2024-11-04 11:56:27
1366
原创 【Golang】Golang的Map的线程安全问题
在 Golang 编程中,map 是一种常用的数据结构,用于存储键值对。然而,Golang 的 map 在并发访问时是线程不安全的。如果多个 goroutine 同时读写同一个 map,可能会导致数据竞争和程序崩溃。本文将详细介绍 Golang 中 map 的线程不安全性,并提供一些解决方案,帮助开发者在并发编程中正确使用 map。1. 什么是线程不安全线程不安全是指在多线程(或多 goroutine)环境下,多个线程同时访问和修改共享数据时,可能会导致数据不一致或程序崩溃。
2024-11-01 11:56:09
1221
原创 【Golang】Golang的数组和slice切片的区别
在 Golang 编程中,数组和切片(slice)是两种常用的数据结构。虽然它们在某些方面有相似之处,但在使用方式和底层实现上有显著的区别。理解这些区别对于编写高效、可维护的代码至关重要。本文将详细介绍 Golang 中数组和切片的区别,帮助读者更好地掌握这两种数据结构的使用。在Go语言中,slice(切片)和数组是两个不同的概念,尽管它们在某些方面有相似之处。数组的长度是固定的,定义时就必须指定长度,且长度是类型的一部分。例如,[5]int和[10]int是不同类型的数组。
2024-10-30 12:03:29
746
原创 【Golang】goconvey测试框架的使用
在现代软件开发中,测试是确保代码质量和稳定性的重要环节。Golang 作为一门强类型、编译型语言,提供了内置的 testing 包来进行单元测试。然而,testing 包的输出格式和功能相对简单,无法满足一些复杂的测试需求。Goconvey 是一个功能强大且易于使用的 Golang 测试框架,它不仅提供了丰富的断言功能,还支持并发测试和自动化测试报告生成。本文将详细介绍 Goconvey 的使用方法,帮助开发者更高效地编写和运行测试用例。
2024-10-25 11:51:24
1174
原创 【Golang】Golang的GC垃圾回收机制
在现代编程语言中,垃圾回收(Garbage Collection, GC)机制是一个至关重要的特性。它帮助开发者自动管理内存,避免内存泄漏和悬挂指针等问题。Go 语言(Golang)作为一门现代编程语言,内置了高效的垃圾回收机制。本文将深入探讨 Go 语言的 GC 机制,通过代码示例解释其工作原理,并展示如何优化代码以减少 GC 压力。o 语言的垃圾回收器主要基于标记-清除(Mark-and-Sweep)和三色标记(Tri-color Marking)算法。标记-清除(Mark-and-Sweep)
2024-10-23 10:19:03
1419
原创 【Golang】Golang中有哪些方式可以进行安全读写共享变量
在并发编程中,安全地读写共享变量是一个非常重要的问题。Go语言(Golang)提供了多种机制来确保在多线程环境下对共享变量的安全访问。本文将介绍几种常见的方式,包括sync.Mutex、sync.RWMutex、sync/atomic、channel和sync.Map,并通过代码示例展示如何使用这些机制。sync.Mutex是Go语言中最基本的互斥锁,用于保护共享资源的读写。它通过锁定和解锁来确保同一时间只有一个goroutine可以访问共享变量。在Go语言中,安全地读写共享变量是并发编程中的一个重要问题。
2024-09-27 09:45:40
1334
原创 【计算机基础】Unicode编码和 ASCII编码的区别
在计算机科学的发展过程中,字符编码标准扮演了至关重要的角色。字符编码标准决定了计算机如何存储和处理文本数据。两种最常见的字符编码标准是 ASCII 和 Unicode。本文将详细介绍这两种编码标准,探讨它们的设计目标、编码范围、应用场景以及各自的优缺点。1. ASCIIASCII(American Standard Code for Information Interchange)是最早的字符编码标准之一,主要用于表示英语字符。它最初设计用于电报系统,后来广泛应用于计算机系统。
2024-09-20 10:07:29
1824
原创 设计模式】Listener模式和Visitor模式的区别
在软件设计中,设计模式是解决特定问题的通用解决方案。Listener模式和Visitor模式是两种常见的行为设计模式,它们在不同的场景下提供了解决问题的有效方法。本文将详细解释这两种模式,并通过Java和Go语言的代码示例展示它们的实现,最后总结它们的区别和适用场景。Listener模式(监听器模式)是一种行为设计模式,主要用于事件驱动的编程。它允许一个对象(监听器)注册到另一个对象(事件源),以便在特定事件发生时接收通知。
2024-09-11 10:00:04
1750
原创 【MySQL】数据库的存储引擎
数据库的存储引擎决定了如何存储、处理和检索数据,是数据库系统的核心组件之一。不同的存储引擎有着不同的存储结构和特性,适用于不同的使用场景。本文将详细介绍几种常见的MySQL存储引擎,它们的存储结构,以及各自的使用场景。InnoDB是MySQL的默认存储引擎,提供了事务安全的表,支持行级锁定和外键。InnoDB的主要特点是聚簇索引,表数据实际上存储在主键索引的叶子节点中。对于非主键索引,索引的叶子节点存储的是对应行数据的主键值,而不是行数据本身。MyISAM存储引擎使用了三种不同的文件来存储表数据。
2024-07-24 10:02:19
758
原创 【数据结构】常用数据结构的介绍:理解与应用
在计算机科学中,数据结构是我们组织和存储数据的方式,它可以帮助我们高效地执行各种操作,如搜索、插入和删除。从数组和链表,到树和图,不同的数据结构有着不同的优点和适用场景。在本文中,我们将探讨一些最常用的数据结构,包括它们的定义、特性,以及它们在实际中的应用。数组是一种线性数据结构,用于存储具有相同类型的元素。每个元素都有其自己的位置(也称为索引),可以通过索引直接访问元素。链表是一种线性数据结构,由一系列的节点组成,每个节点包含元素的值和指向下一个节点的指针。链表在插入和删除操作上比数组更高效。
2024-07-23 09:41:35
627
原创 【MySQL】数据库LOCK锁类型
在数据库操作中,锁定机制是保持数据一致性的关键。它们帮助我们在处理并发操作时保持数据的一致性和完整性。本文将详细介绍数据库的各种锁类型,以及如何避免因使用不当而导致的问题。总的来说,理解数据库的锁机制及其类型,以及如何避免因使用不当而导致的问题,对于保持数据的一致性和完整性,以及提高数据库的性能,都是非常重要的。希望本文能帮助你更好地理解和使用数据库的锁。
2024-07-19 11:01:16
550
原创 【MySQL】深入理解MySQL的JOIN和UNION操作及其区别
在数据处理和查询中,对数据的整合和关联是非常常见的需求。MySQL作为世界上最流行的开源关系数据库,提供了强大的数据操作能力,其中JOIN和UNION是两种重要的数据整合方式。本文将详细介绍MySQL的JOIN和UNION操作的类型及其区别。总的来说,JOIN和UNION是MySQL中非常重要的操作,它们为我们提供了强大的数据处理和查询能力。理解它们的区别和适用场景,可以帮助我们更好地利用MySQL来处理复杂的数据需求。
2024-07-17 09:48:20
1187
原创 【数据结构】数据结构中树的结构:理解与应用
在计算机科学中,数据结构是我们组织和存储数据的方式,它可以帮助我们高效地执行各种操作,如搜索、插入和删除。其中,树形结构是一种非常重要的数据结构,它在许多不同的场景中都有应用,如数据库索引、文件系统和路由算法。在本文中,我们将探讨几种不同类型的树形结构,包括它们的定义、特性,以及如何用PlantUML代码来表示它们。树形结构是一种强大而灵活的数据结构,它可以帮助我们解决许多复杂的问题。通过理解和掌握不同类型的树形结构,我们可以更好地设计和实现各种算法和系统。
2024-07-15 10:06:27
974
原创 【Golang】使用go mod vendor的情况
如果你的项目有大量的依赖,那么将这些依赖包含在你的代码库中可能会使代码库变得非常大,这可能会导致一些问题,例如增加克隆代码库的时间,或者使版本控制系统变得缓慢。如果你在没有网络连接的环境中开发,例如在飞机上或者在网络受限的公司环境中,那么vendor目录可以帮助你在没有网络连接的情况下构建和测试你的项目。如果你的项目使用了CI/CD系统,那么这些系统通常会在每次构建时从头开始,这意味着它们会自动下载所有的依赖,你不需要在你的代码库中包含这些依赖。总的来说,是否需要使用vendor目录取决于你的具体情况。
2024-07-12 10:25:02
965
原创 【计算机网络】深入理解TCP协议的三次握手和四次挥手 一、前言
在计算机网络中,TCP协议是一种面向连接、可靠的、基于字节流的传输层通信协议。它的核心特性就是提供了数据的可靠传输,这种可靠性主要体现在连接的建立(三次握手)和断开(四次挥手)的过程。在这篇博客中,我们将详细探讨这两个过程。TCP协议的三次握手和四次挥手是其核心的特性,它们确保了TCP连接的可靠性。理解这两个过程,对于深入理解TCP协议以及网络通信的原理是非常有帮助的。希望这篇博客能帮助你更好地理解TCP协议的工作原理。
2024-07-11 10:12:28
568
原创 【计算机网络】tcp协议和upd协议有什么区别
在网络通信中,传输层协议起着至关重要的作用。它们负责将应用层的数据从一台机器传送到另一台机器。其中,最为常见的两种传输层协议是TCP(传输控制协议)和UDP(用户数据报协议)。虽然它们都是用于数据传输的,但是它们的工作方式和用途却有着明显的区别。在这篇博客中,我们将探讨TCP和UDP的主要区别。总的来说,TCP和UDP都有各自的优点和应用场景。TCP在需要可靠且有序的数据传输时表现出色,而UDP则在需要快速且实时的数据传输时更为出色。在选择使用TCP还是UDP时,应根据应用的具体需求和特性来决定。
2024-07-10 10:13:11
961
原创 【MySQL】MySQL中的字段类型和区别
在设计数据库和创建表时,理解MySQL中的各种字段类型及其区别是非常重要的。每种类型都有其特定的用途和存储需求。在本文中,我们将详细讨论MySQL中的各种字段类型,以及它们的适用场景。理解MySQL中的各种字段类型及其区别是数据库设计的关键部分。正确的选择和使用这些类型可以帮助你更有效地存储数据,同时也可以提高查询性能和数据完整性。在设计数据库和创建表时,你应该根据你的数据需求来选择最合适的字段类型。
2024-07-09 09:49:31
755
原创 【MySQL】MySQL索引失效场景
在数据库管理和优化的天地里,索引如同图书的目录,极大地加速了数据检索速度,是提升应用性能的不二法门。对于MySQL这一广受欢迎的关系型数据库管理系统,深入掌握索引的有效利用,对每位数据库管理员和开发者而言至关重要。然而,并非在所有情境下索引都能大显身手,本文旨在深入剖析MySQL索引失效的典型场景,助您规避性能雷区,撰写出更加高效、优化的SQL查询。索引失效,作为拖累数据库性能的隐形杀手,其规避与优化需细致入微。洞悉上述案例,结合具体查询需求,合理规划索引结构与优化查询语句,是提升性能的关键。
2024-07-08 09:38:23
477
原创 【MySQL】SQL中的DROP、DELETE和TRUNCATE的区别
在使用SQL进行数据库操作时,我们经常需要删除数据。SQL提供了几种不同的命令来完成这个任务,包括DROP、DELETE和TRUNCATE。虽然这三个命令都可以用来移除数据,但它们的行为和效果有所不同。理解这些差异对于有效和安全地管理数据库是非常重要的。在本文中,我们将详细讨论这三个命令的区别。总结一下,如果你想删除表的所有数据并且不需要回滚,那么使用TRUNCATE会更快;如果你需要删除特定的行或者可能需要回滚,那么使用DELETE;如果你需要删除整个表,那么使用DROP。
2024-07-05 09:42:30
516
1
原创 【MySQL】SQL注入的介绍
在今天的数字化时代,数据安全已经成为我们不能忽视的问题。其中,SQL注入是一种常见的安全威胁,它利用了应用程序和数据库交互的方式,通过操纵SQL查询来达到攻击的目的。在本文中,我们将详细介绍SQL注入的实例,并讨论如何防止这种攻击。SQL注入是一种严重的安全威胁,它可以允许攻击者获取未授权的数据访问,数据篡改,甚至是完全的系统控制。然而,通过理解SQL注入的工作原理,以及遵循上述的防范方法,我们可以大大降低应用程序受到SQL注入攻击的风险。
2024-07-04 10:13:26
718
原创 【MySQL】MySQL的事务特性和用法
在数据库管理系统中,事务处理是一种关键的技术,它可以确保数据的一致性和完整性。在本文中,我们将讨论MySQL中的事务特性和用法,包括事务的基本概念和事务隔离级别。理解MySQL的事务特性和用法是每个数据库开发者和管理员的必备技能。事务可以确保数据的一致性和完整性,而事务隔离级别则决定了事务之间如何隔离,从而影响并发性能和数据一致性。通过合理地使用事务和选择合适的隔离级别,你可以构建出高效且可靠的数据库应用。
2024-07-03 09:40:07
435
原创 【JAVA】Java中运行JS代码
在日常的开发工作中,我们可能会遇到需要在Java代码中运行JavaScript代码的情况。虽然Java和JavaScript是两种完全不同的编程语言,但Java提供了一种机制来执行JavaScript代码。在本文中,我们将探讨如何在Java中运行JavaScript代码。在本文中,我们讨论了如何在Java中运行JavaScript代码,包括相关类的解释以及代码的实现。虽然这个示例很简单,但它展示了在Java中运行JavaScript代码的基本方法。
2024-06-28 09:52:57
1930
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅