架构
文章平均质量分 79
奔向理想的星辰大海
这个作者很懒,什么都没留下…
展开
-
快速构建 Python 项目:Curdling 指南
声明式的依赖管理:通过简单的配置文件,开发者可以明确地定义项目的依赖关系,包括依赖的版本、来源等信息。通过Curdling管理项目的依赖,可以确保项目的依赖关系清晰明了,同时方便地更新和管理依赖版本。通过声明式的方式定义项目的依赖关系,开发者可以轻松地管理项目的依赖,确保项目的稳定性和可维护性。通过Curdling管理项目的依赖,可以轻松地安装和更新这些库,确保项目的稳定性和可维护性。通过Curdling管理项目的依赖,可以方便地安装和更新这些库,保证项目的顺利运行。原创 2024-05-20 09:53:05 · 275 阅读 · 0 评论 -
引入 Redis 缓存操作不一致引发的问题
此时就会出现数据库中的数据与缓存的数据不一致的情况,这是因为线程A先更新了数据库,可能因为网络等异常情况,线程B更新完数据库进而更新了缓存,当线程B更新完缓存后,线程A才更新缓存,这就导致了数据库数据与缓存数据的不一致。首先一个业务场景就是数据库写多读少的场景,这种场景下采用先更新数据库再更新缓存的策略,就会导致缓存并未被读取就会被频繁的更新,极大的浪费了服务器的性能。先删除缓存再更新数据库的方案也存在着线程安全的问题,例如,线程A更新缓存,同时,线程B读取缓存的数据。原创 2024-05-17 09:22:48 · 311 阅读 · 0 评论 -
JS数组处理小技巧
第二个,一个具有配置属性的对象。every用于所有元素是否都能通过测试,返回一个布尔值,只有当所有元素都通过了测试,才会返回true,接收一个回调函数,回调函数有三个形参,第一个为当前元素,第二个为当前索引,第三个为数组本身,另外,当数组为空的时候使用every,条件不论是怎么样的,都会返回true(这种情况属于无条件正确,因为空集的所有元素都符合给定的条件。对数组内容进行覆盖填充,有三个参数,第一个为填充的值,第二个为起始位置(可选),第三个为结束位置,不包含此索引位置(可选)。原创 2024-05-16 11:06:23 · 3 阅读 · 0 评论 -
JavaScript 宣布 Signals 即将到来!颠覆性的 API !
如果指望 Signals 取代 Pinia、Vuex 那是不现实的,因为大部分项目都是使用 Vue 框架,而 Pinia、Vuex 是针对 Vue 推出的状态管理工具库,在 Vue 中用起来肯定比 Signals 好用多了~况且 Signals 现在还没正式上线呢!Signals 它来啦!其实 Siganls 是会提供给我们一个 effect 的全局方法,让我们可以监听依赖项的变化,并传入一个回调函数,在回调中去做我们想做的事情。当状态管理变化的时候,我们会想去做一些操作,那我们应该如何监听变化呢?原创 2024-05-16 10:57:35 · 72 阅读 · 0 评论 -
SpringBoot项目使用十个开发技巧
注:在生成环境下,你将无法看到上面的输出结果,你需要做其它的配置,情况下面的第九条。原创 2024-05-16 09:47:05 · 1 阅读 · 0 评论 -
使用Quarkus和LangChain4j,LLM在Java中使用
在以上的项目演示中,探索了LLM的发展历史,并使用LangChain4J实现了企业级Java服务和组件,这些服务和组件由最具主导地位和影响力的LLM提供支持。原创 2024-05-15 09:44:35 · 1016 阅读 · 0 评论 -
python自动化办公:Excel数据自动化验证与清理,强化数据处理策略
同时,对于无法自动修正的问题,脚本还会生成详细的错误报告,帮助数据分析师快速定位并处理数据中的问题。在处理Excel数据时,数据验证和清理是确保数据质量的关键步骤。常见的数据问题包括格式错误、重复条目和空字段,这些问题如果不加以处理,将会对后续的数据分析造成严重的偏差。通过使用openpyxl库,我们可以自动检测和修正这些问题,或者在无法自动修正的情况下生成详细的错误报告,从而帮助数据分析师更好地维护数据的准确性和可靠性。在数据处理流程中,Excel数据的质量是确保后续分析准确性的基石。原创 2024-05-14 11:25:00 · 781 阅读 · 0 评论 -
rust 项目中 mod.rs 文件的作用
之前在 golang 一个目录下,例如 controllers 下放置一堆子文件,就需要担心不同文件中的 public 函数重名问题。例如,src/controllers/user.rs 中使用 src/models/user.rs 中的代码, 只需要 use 引入 models 模块即可。在 Rust Loco 项目中,会看到 models 及 controllers 目录下都有一个 mod.rs 文件。在项目根目录下有个与入口文件 app.rs 平级的 lib.rs 文件。mod.rs 的更多用法。原创 2024-05-13 09:42:17 · 210 阅读 · 0 评论 -
100个经典shell脚本让你撸个够!
ss -nutlp | awk '{print $1,$5}' | awk -F"[: ]" '{print "协议:"$1,"端口号:"$NF}' | grep "[0‐9]" | uniq。awk -F= -v x=$addr '$2==x{print "完成..."}' $mountpoint/etc/sysconfig/network‐scripts/ifcfg-$dev。12)编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态, 哪些主机处于关机状态 (for 版本)原创 2024-05-13 09:26:41 · 373 阅读 · 0 评论 -
理解函数式接口 @FunctionalInterface
在 Spring Boot 框架中,经常使用的 CommandLineRunner、ApplicationRunner 等等都是函数式接口。@FunctionalInterface 注解是 Java Lang 包中的一个注解,用于标识一个接口是函数式接口。在一些异步操作或模板方法中,我们可以使用函数式接口来传递回调函数,从而实现定制化的操作。在测试类的 main 方法中,我们使用 Lambda 表达式调用了函数式接口。以上就是函数式接口的整理,函数式接口是指只包含一个抽象方法的接口。原创 2024-05-13 09:21:07 · 1126 阅读 · 0 评论 -
揭秘 Java 跨系统文件路径组装的秘方!
文件路径组装问题就是在不同的操作系统中,文件路径的分隔符可能不同。比如在 Windows 系统中,文件路径的分隔符是\。例如,C:\Windows\System32就是一个 Windows 操作系统中的文件路径。windows文件目录结构示意图而在 Unix/Linux 系统中,文件路径的分隔符是/。例如,/usr/bin/java就是一个 Unix/Linux 操作系统中的文件路径。linux文件目录结构示意图。原创 2024-05-12 10:10:34 · 226 阅读 · 0 评论 -
Apache Bench 使用指南
总的来说,Apache Bench 是一款强大的 HTTP 性能测试工具,可以帮助开发者评估 Web 应用的性能,发现潜在的瓶颈,并为优化应用提供有价值的数据支持。评估优化前后的性能变化:在对 Web 应用进行优化时,可以使用 AB 测试来评估优化效果,量化性能的提升。验证应用是否能够承受预期的访问压力:在部署新系统前,可以使用 AB 进行压力测试,确保应用能够承受预期的并发量,避免系统上线后出现性能问题。集成数据库查询性能:利用 AB 模拟大量并发查询请求,结合数据库监控,可以评估应用的数据库层性能。原创 2024-05-12 10:03:49 · 266 阅读 · 0 评论 -
构建高度可扩展的云原生应用的五个技巧
为了衡量这个解决方案的有效性,我们设置了一个包含24个代理和六个代理单元的实验性集群(有关完整配置的详细信息,请参见我们的白皮书)。我们的高层级目标可能与你自己基于云的系统的目标相似:提高性能和弹性,增加对我们自己和客户的成本效率,并在多个公有云上提供一致的体验。通过将架构分层以优化不同存储类型的使用,我们在提高性能和可靠性的同时降低了成本。如果你正在为你的组织构建云原生基础设施,无论是使用新代码还是使用像Kafka这样的现有开源软件,我们希望本文中描述的技术能帮助你实现性能、可用性和成本效率的目标。原创 2024-05-11 09:48:38 · 4 阅读 · 0 评论 -
Dockerfile Entrypoint中使用环境变量
在Dockerfile中可以使用环境变量来提高镜像的灵活性和可重用性,同时也可以在容器启动时通过entrypoint命令来使用这些环境变量。Dockerfile中的Entrypoint指令是用来配置容器启动时执行的命令或脚本,可以在Dockerfile中指定容器启动时执行的默认命令。在上面的示例中,我们定义了一个名为MY_NAME的环境变量,并在Entrypoint中使用这个环境变量来输出“Hello, World!在Dockerfile Entrypoint中使用环境变量。原创 2024-05-10 10:47:55 · 378 阅读 · 0 评论 -
OpenHarmony命令行工具hdc_std简介
hdc,全称,是HarmonyOS提供的方便开发人员调试的命令行工具,使用该工具可以在个人电脑与设备或模拟器之间进行交互通讯。hdc_std,与hdc相似,但它是OpenHarmony提供的用于开发人员调试的命令行工具,专门用在个人电脑与开发板之间的交互,并且这个开发板是需要运行OpenHarmony标准版(standard)系统的,所以在hdc后面加了std后缀以示区分。简言之,手机上调试用的是hdc,开发板上调试用的是hdc_std,一个不开源,一个开源。原创 2024-05-10 10:44:07 · 334 阅读 · 0 评论 -
jenkins 真得很牛逼!只是大部分人不会用而已
jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkins 推荐使用声明式流水线。文档只介绍声明流水线。原创 2024-05-07 09:28:33 · 886 阅读 · 0 评论 -
Python 网络爬虫利器:执行 JavaScript 实现数据抓取
在 Python 中执行 JavaScript 代码可以帮助完成多种任务,包括 Web 自动化、数据抓取、前端开发和 Web 应用集成。本文介绍了多种方法,包括使用内置库 execjs 和 PyExecJS、Selenium 与 WebDriver,以及调用 Node.js 进程。根据具体的需求和使用情况,选择适合的方法,可以更高效地执行 JavaScript 代码,从而实现更多功能。原创 2024-05-06 10:04:09 · 1311 阅读 · 0 评论 -
redis 实现分布式序列
本地内存存储是不可取的,首先,同步多个客户端虚拟机内存数据太复杂,相当于自己实现了一个Redis,其次,保证内存数据存储安全太复杂。从分工上来看,任务队列的目的是管理任务执行的状态,业务系统把这个职责交给了任务队列,业务系统自身的任务状态维护未必准确。最极端的情况,所有Redis都停了,当消息队列发现Redis停止响应时,对业务系统的请求应抛出异常,停止队列服务。Redis 3.0支持集群了,还没细看,应该是个好消息,等大家都用起来,没什么问题的话,可以考虑试试看。可能是断电了,可能是进程被kill了。原创 2024-05-01 22:11:48 · 0 阅读 · 0 评论 -
Rust 登上了开源头条「GitHub 热点速览」
本周的热门开源项目,Rust 语言可谓是出尽风头,登顶的是一款 Rust 写的 Web 服务器:pingora,它夸张到一周涨了 1 万 Star,目前还在以每天 1000+ 恐怖速度增长着,该项目是由 Cloudflare 开源,在其内部早已用它替换掉了 Nginx,每天处理超过一万亿个请求。要不用 Python 快速构建个 Web 应用试试效果?FastUI 是一个新的选择。既然说到 Web 服务 Web 安全也不容忽视:Web-Check,它能够全面地展示任意网站的开源情报。原创 2024-04-30 09:30:31 · 882 阅读 · 0 评论 -
Go 语言将 PDF 转为 Word ,代码怎么实现 ?
参数 f 是打开的 PDF 文件,nil 表示不进行加密,api.NewConvertContext(conf) 创建了转换上下文,wordPath 是输出 Word 文件的路径。4 转换 PDF 文件为 Word 格式:调用 PDF 转换库提供的函数或方法,将加载的 PDF 文件转换为 Word 格式。3 加载 PDF 文件:使用 PDF 转换库加载需要转换的 PDF 文件。通常,这可以通过指定 PDF 文件的路径来实现。5 保存转换后的 Word 文件:将转换后的 Word 文件保存到指定的路径。原创 2024-04-30 09:18:38 · 225 阅读 · 0 评论 -
kubernetes集群部署EFK收集集群日志
Fluentd是一个用于统一日志层的开源数据收集器。# 插件地址:https://github.com/repeatedly/fluent-plugin-multi-format-parser。 # 匹配tag为raw.kubernetes.**日志信息。remove_key_name_field true # key_name 解析成功后删除字段。time_format %Y-%m-%dT%H:%M:%S.%NZ # 时间格式。原创 2024-04-29 10:28:57 · 9 阅读 · 0 评论 -
centos 安装rabbitmq集群
bash sudo rabbitmqctl stop_app sudo rabbitmqctl join_cluster rabbit@node1 sudo rabbitmqctl start_app - 在 node3 上,重复上述步骤,但将 join_cluster 命令中的 rabbit@node1 改为 rabbit@node2。如果在集群配置过程中遇到问题,请检查 RabbitMQ 日志文件以获取更多信息。在配置集群之前,确保所有 RabbitMQ 节点可以相互网络通信。原创 2024-04-29 10:05:07 · 780 阅读 · 0 评论 -
让公司的MySQL支撑亿级流量的策略
从库越多,从库连接上来的I/O线程越多,主库也要创建同样多log dump线程处理复制的请求,对于主库资源消耗较高,同时受限于主库的网络带宽,所以一般一个主库最多挂3~5个从库。使用独立的log dump线程是异步,避免影响主库的主体更新流程,而从库在接收到信息后并不是写入从库的存储,是写入一个relay log,这是为避免写入从库实际存储会比较耗时,最终造成从库和主库延迟变长。在同步写DB的同时,把朋友圈数据写Cache,这样Consumer在获取朋友圈信息时,优先查询Cache,这也能保证数据一致性。原创 2024-04-29 09:39:54 · 2 阅读 · 0 评论 -
多个MySQL实例之间进行数据同步和复制
通过正确配置和管理,可以实现数据在主节点和从节点之间的自动同步,提高系统的可用性和性能。这种复制方式提供了最低的延迟,但主节点和从节点之间的网络连接必须稳定。2)、使用自动故障切换(Failover): 监控主节点的状态,一旦主节点宕机,自动将可用的从节点提升为新的主节点,确保系统的持续运行。3)、 使用读写分离: 在从节点上启用只读模式,并将读操作分配到从节点上,减轻主节点的负载并提高系统的整体性能。1)、使用主从节点集群: 通过将多个主节点和多个从节点组成集群,实现数据的水平扩展和故障容错。原创 2024-04-29 09:35:41 · 88 阅读 · 0 评论 -
利用Spring Boot以及Spring AI构建生成式人工智能应用
Spring AI,作为行业领导者,通过其强大、灵活的API和先进的功能,为各种行业提供了颠覆性的解决方案。在本专题中,我们将深入探讨Spring AI在各领域的应用示例,每个案例都将展示Spring AI如何满足特定需求,实现目标,并将这些LESSONS LEARNED扩展到更广泛的应用。希望这个专题能对你有所启发,更深入地理解和利用Spring AI的无限可能。Spring框架在软件开发领域已经有超过20年的历史,自Spring Boot 1.0版本发布以来已有10年。原创 2024-04-28 09:37:17 · 980 阅读 · 0 评论 -
常用的时间序列分析方法总结和代码示例
时间序列是最流行的数据类型之一。视频,图像,像素,信号,任何有时间成分的东西都可以转化为时间序列。在本文中将在分析时间序列时使用的常见的处理方法。这些方法可以帮助你获得有关数据本身的见解,为建模做好准备并且可以得出一些初步结论。我们将分析一个气象时间序列。利用逐时ERA5 Land[1]研究2023年西伯利亚东南部点的2 m气温、总降水量、地表净太阳辐射和地表压力。matplotlib是可以设置不同的风格的,这里我们使用 opinionated和 ambivalent来进行风格的设置。原创 2024-04-27 20:34:16 · 810 阅读 · 0 评论 -
从漏洞管理向持续威胁暴露管理演进的五个关键要素
企业应该明确定义采用CTEM计划的安全目标和期望结果,使组织网络风险管理工作与数字化发展目标协同一致。这有利于指导接下来的持续威胁暴露管理工作。原创 2024-04-22 10:17:09 · 531 阅读 · 2 评论 -
使用 Node.js 实现服务器端推送
接下来,我们将展示如何使用Node.js中的EventSource模块来实现服务器端推送。现在,我们可以在浏览器中打开http://localhost:3000/index.html,你会看到一个数字在不断递增,这就是通过服务器端推送实现的实时更新效果。通过以上示例,我们成功地使用Node.js实现了服务器端推送。这种方式可以使我们的应用实时接收数据更新,并立即展示给用户,从而提升用户体验。在上面的代码中,我们创建了一个Express应用,并在/events路由下设置了服务器端推送。什么是服务器端推送?原创 2024-04-22 09:31:46 · 253 阅读 · 0 评论 -
五个简单好用的本地运行大模型的方法
像ChatGPT、Claude.ai和phind这样的聊天机器人非常有用,但可能并不总是希望的问题或敏感数据由外部应用程序处理。在平台上尤其如此,在这些平台上,你的互动可能会被人类审查,并以其他方式用于帮助训练未来的模型。一种解决方案是下载一个大型语言模型(LLM)并在自己的机器上运行它。这样一来,外部公司就永远无法访问的数据。这也是尝试一些新专业模型的一个快速选择,如Meta最近宣布的Code Llama系列模型,这些模型经过了编码调整,以及Seamless M4T,旨在实现文本到语音和语言翻译。原创 2024-04-21 10:27:28 · 964 阅读 · 1 评论 -
鸿蒙原生应用/元服务开发-短时任务
以下图为例:应用有两个短时任务A和B,在前台时申请短时任务A,应用退至后台后开始计时为①,应用进入前台后②不计时,再次进入后台后③开始计时,短时任务A结束后,由于阶段④仍然有短时任务B,所以该阶段继续计时。3.获取短时任务剩余时间。查询本次短时任务的剩余时间,用以判断是否继续运行其他业务,例如应用有两个小任务,在执行完第一个小任务后,可以判断本次短时任务是否还有剩余时间来决定是否执行第二个小任务。以图1为例,①②③时间段内的任意时刻应用申请2个短时任务,④时间段内的任意时刻应用申请1个短时任务。原创 2024-04-19 10:22:47 · 139 阅读 · 0 评论 -
Rust UI 框架:Slint UI 简单入门
总结 Slint 是一个 Rust 编写的综合性 UI 工具包,定义和提供一系列方便构建 UI 的组件,使用了声明式编程来简化 UI 的开发,可用于为桌面和嵌入式设备构建原生用户界面。使用 Slint 构建的图形应用程序可以在内存小于 300 kB 的系统上运行,实事求是的讲,内存较大的嵌入式设备Android更占优势,但是低内存的嵌入式设备(比如单片机)上 Slint 有很大机会,总之,Slint 非常适合为嵌入式设备应用程序开发 UI。因此,Slint 非常适合为嵌入式设备应用程序开发 UI。原创 2024-04-18 10:04:31 · 618 阅读 · 0 评论 -
Rust编写一个ChatGPT桌面应用(保姆级教程)
2.安装 Rust 插件:打开 IntelliJ IDEA,然后转到 "File" > "Settings" (Windows/Linux) 或 "IntelliJ IDEA" > "Preferences" (macOS)。在设置窗口中,选择 "Plugins",搜索 "Rust",然后单击 "Install"。3.创建新的 Rust 项目:在 IntelliJ IDEA 中,选择 "File" > "New" > "Project",然后在项目类型列表中选择 "Rust"。效率高、资源占用量低。原创 2024-04-18 09:53:34 · 584 阅读 · 0 评论 -
Python连接SQL server数据库
在上面的代码示例中,我们首先使用pyodbc.connect()方法连接到SQL Server数据库,然后创建一个游标对象来执行SQL查询。在上面的代码示例中,我们首先连接到SQL Server数据库并获取数据,然后使用value_counts()方法统计数据分布,并利用matplotlib库绘制饼状图展示数据分布。在上面的代码示例中,我们使用pd.read_sql()方法将SQL查询结果直接读取到一个pandas的DataFrame中,这样就可以更方便地对数据进行处理和分析。# 打印DataFrame。原创 2024-04-18 09:40:15 · 254 阅读 · 0 评论 -
MySQL拥有2000万条数据的前提下,如何确保Redis仅缓存的20万条数据
Redis的所有数据都存储在内存中,这意味着它的容量相较于磁盘存储更为有限。为了解决内存容量不足的问题,Redis提供了多种数据淘汰策略。其中,与保证热点数据密切相关的是LFU(Least Frequently Used)策略,它能够根据数据对象的访问频次,将访问次数最少(即最不常用)的数据淘汰出内存,以便为新的数据腾出空间。原创 2024-04-10 10:43:44 · 1000 阅读 · 0 评论 -
nginx 超详细讲解+实操
为了有一个全面的认知,接下来我们先来看看nginx的架构以及一些特点。从上边这张图,我们可以一览nginx的架构设计,首先我们可以直观得出事件驱动&异步非阻塞:多进程机制:proxy cache(服务端缓存):反向代理:nginx模块示意图如下:nginx常用场景挺多的,比如:其中我认为 最最 基础的也是应用最多的就是 反向代理,这里我们画个图简单看下什么是反向代理 (ps:其他的那些使用场景,我们先不做展开,放到下边一个个哔哔。)所谓反向代理,其实很好理解就是代理的服务端(与之对应的正向代理一般代理的是客原创 2024-04-10 09:55:29 · 853 阅读 · 0 评论 -
新开源的物联网平台:Magistrala
Magistrala物联网平台是由Abstract Machines公司开发的一个创新的基础设施解决方案,旨在帮助组织和开发者构建安全、可扩展和创新的IoT应用程序。这个平台以前被称为Mainflux,现在已经开源,在国外是IoT领域的一个前沿选择。Magistrala的核心在于其对安全性的重视,在安全性方面,Magistrala平台特别强调在IoT生态系统中的安全性。它包含了强大的数据保护和访问控制机制,包括加密、认证和细粒度的访问策略等高级功能。原创 2024-04-10 09:39:30 · 45 阅读 · 0 评论 -
Xxl-Job中的概念和使用详解
2、执行器 执行器是用来执行具体的任务逻辑的 执行器你可以理解为就是平时开发的服务,一个服务实例对应一个执行器实例 每个执行器有自己的名字,为了方便,你可以将执行器的名字设置成服务名 3、任务 任务什么意思就不用多说了 一个执行器中也是可以有多个任务的 总的来说,调用中心是用来控制定时任务的触发逻辑,而执行器是具体执行任务的,这是一种任务和触发逻辑分离的设计思想,这种方式的好处就是使任务更加灵活,可以随时被调用,还可以被不同的调度规则触发。所谓的JobHandler其实就是一个定时任务的封装。原创 2024-04-10 09:33:43 · 859 阅读 · 0 评论 -
不建议把数据库部署在docker容器内
在一次Docker应用的十大难点专场上,某国有银行的一位架构师也曾提出过:“数据库的性能瓶颈一般出现在IO上面,如果按 Docker 的思路,那么多个docker最终IO请求又会出现在存储上面。因为数据不匹配,新实例不会与现有的实例兼容,如果要限制实例使用单机服务,应该让 DB 使用非容器化环境,我们仅仅需要为计算服务层保留弹性扩展的能力。资源隔离方面,Docker 确实不如虚拟机KVM,Docker是利用Cgroup实现资源限制的,只能限制资源消耗的最大值,而不能隔绝其他程序占用自己的资源。原创 2024-04-10 09:24:24 · 873 阅读 · 0 评论 -
Python Reduce函数解密:优雅处理复杂数据聚合
reduce函数是Python内置的高阶函数之一,它在函数式编程中广泛应用。reduce的主要目的是将一个二元操作函数(接受两个参数)应用于序列的元素,以将序列归约为单一的值。可以使用自定义的函数来代替lambda函数。以下示例使用自定义函数来查找列表中的最小值:复制print("最小值:", min_value) # 输出: 81.2.3.4.5.6.7.8.9.10.原创 2024-04-09 10:14:36 · 735 阅读 · 0 评论 -
mysql 千万数据分页查询优化
只适合小型应用的快速开发,对于ERP,OA,大型网站,数据层包括逻辑层的东西都不能用框架。1、到了100万的数据,160万数据,15G表,190M索引,就算走索引,limit都得0.49秒。综上:如果对于有where 条件,又想走索引用limit的,必须设计一个索引,将where 放第一位,limit用到的主键放第2位,而且只能select 主键!查询字段一较长字符串的时候,表设计时要为该字段多加一个字段,如,存储网址的字段 查询的时候,不要直接查询字符串,效率低下,应该查诡该字串的crc32或md5。原创 2024-04-09 09:58:28 · 768 阅读 · 0 评论