- 博客(88)
- 收藏
- 关注
原创 约束+数据库技术+事务
在SQL(Structured Query Language,结构化查询语言)中,多表查询可以通过多种方式实现,包括JOIN(连接)、UNION(合并结果集)、子查询等。如果两个表中的行在指定的连接键上有相同的值,这些行就会被组合在一起返回。隐式外连接虽然在某些情况下仍然可以使用,但它们的使用应该尽量避免,特别是在复杂的查询中。子查询也可以是相关子查询(correlated subquery),即子查询中的条件依赖于外部查询的行。:左连接,返回左表(表A)的所有行,即使在右表(表B)中没有匹配的行。
2024-03-08 19:33:26
2587
原创 12306余票自动监控工具:基于Selenium的Python实现(附完整代码)
本文介绍了一款基于Python+Selenium开发的12306余票自动监控工具。该工具支持免登录记忆、自定义查询配置、智能监控余票状态、自动预订等功能,采用3-6秒随机间隔查询,并优化了反反爬机制,如模拟人类操作、隐藏自动化痕迹等。环境准备需安装Selenium库并配置匹配的ChromeDriver。代码实现包含保存/加载Cookies、模拟人类输入、初始化浏览器设置等关键功能,通过处理iframe嵌套结构获取余票信息,帮助用户高效抢票。
2025-09-29 14:11:54
1631
原创 Linux主机 ->多机器登录
PasswordAuthentication no // 不能使用密码登录。vi /etc/ssh/sshd_config // 文件位置。echo ‘公钥’ > authorized_keys。step1:ssh-keygen(密钥生成)step2:修改sshd_config 文件。将第一步生成的公钥导入到需要使用的主机上。ssh root@要使用的主机名。step3: 导入公钥。step4: 开始使用。
2025-07-20 22:35:26
282
原创 MySQL 备份与恢复指南
MySQL数据库备份操作指南摘要 本文介绍了使用mysqldump命令进行MySQL数据库备份的多种方法,包括:1)备份单个数据库(全量/仅结构);2)备份全部数据库;3)备份多个指定数据库;4)备份数据表(全表/仅结构/仅数据/条件筛选)。特别推荐使用gzip压缩备份文件以节省存储空间,并提供了相应的解压恢复命令。 注意事项:需替换命令中的占位符为实际值;恢复前确认目标数据库存在;压缩备份可节省空间;建议多位置存储备份文件以确保数据安全。
2025-07-15 23:53:31
370
原创 30字速成Docker安装与配置指南
本文详细介绍了Docker的在线安装与常用服务部署方法。在线安装部分包括移除旧版本、配置阿里云YUM源、安装启动Docker、配置镜像加速和DNS等步骤,并提供了MySQL、Redis、MinIO等服务的容器化部署方案,强调数据持久化、安全配置和性能优化。离线安装则推荐使用国内镜像站下载安装包并校验文件完整性。文章包含大量实用命令和配置示例,适合生产环境部署参考。
2025-05-25 17:24:55
1200
原创 统一认证用户和组织数据同步过程方案
在企业级应用系统中,用户和组织数据的统一认证与同步是至关重要的。它可以确保不同系统之间数据的一致性和准确性,提高数据管理的效率,减少人工干预和错误。本方案将详细介绍如何实现统一认证用户和组织数据的同步过程,基于提供的。解析 XML 数据,提取组织信息,并根据现有组织数据集合判断数据的插入和更新。用户数据同步的流程与组织数据同步类似,可以参考组织数据同步的步骤进行实现。查询现有组织数据的 ID,存储在集合中,用于后续判断数据的插入和更新。从数据库中查询上次同步的时间,如果没有记录,则使用配置中的更新时间。
2025-04-16 16:56:27
527
原创 Linux 下 MySQL 8 搭建教程
Linux 中的 MySQL 默认是区分表名大小写的,如果你安装的是 MySQL 8,需要在数据库初始化时设置不区分大小写,否则初始化后在配置文件中设置并重启时会报错。输入刚修改的密码,按回车键。到此,MySQL 已经安装完成。将解压并重命名后的 MySQL 文件夹移动到。给解压的 MySQL 文件夹及创建的。服务的 3、4、5 状态为开或者为。查看是否安装了 MySQL 依赖库。下载所需的 MySQL 安装包。添加服务列表的方式,放置到。为了满足生产环境服务器对。用户的限制,需要创建。
2025-03-14 11:49:17
4043
原创 Pinia详解
Pinia是Vue的一个状态管理库,它是Vuex的替代方案。简单易用:其API设计简洁,容易理解和上手,不像Vuex那样有较多复杂的概念。支持TypeScript:对于大型项目或者对类型安全要求较高的项目非常友好。支持组合式API和选项式API:可以方便地在不同风格的Vue项目中使用。模块热替换:在开发过程中方便调试,修改状态相关代码后可以实时更新。
2025-01-07 15:26:06
1139
原创 Vue 3 详解
/ child.value 是 组件的实例。// fullName.value = "范 冰冰";// 声明一个 ref 来存放该元素的引用。// 注意:我们这里使用的是解构赋值语法。// 必须和模板里的 ref 同名。// 可以直接侦听一个 ref。// 挂载时机生命周期函数;// 一个计算属性 ref。
2025-01-07 14:20:18
1025
原创 Node.js 中 http 模块的深度剖析与实战应用
本文全方位、深层次地解析了 Node.js 中 http 模块的关键要点,从服务器搭建的基础配置,到请求与响应的精细处理,再到请求参数的巧妙获取,每一步都结合详细的代码与重点标注,旨在助力开发者透彻掌握 http 模块的精髓,为开发功能完备、交互流畅的网络应用提供坚实的技术支撑。无论是新手入门还是老手进阶,都能从中汲取有益养分,快速应用于实际项目开发之中。
2025-01-03 15:43:55
1310
原创 Node.js 知识(规范)
在 Node.js 项目开发中,了解和掌握 ESM 规范与 CJS 规范的使用方式很重要,开发人员可以根据项目的实际需求、兼容性要求等因素来选择合适的模块规范进行代码的组织和模块间的交互,确保项目能够顺利运行并实现预期的功能。
2025-01-03 11:28:56
532
原创 Vue 3 中实现页面特定功能控制
通过使用 Vue 3 的provide和inject,我们可以轻松地在特定页面控制功能的显示与隐藏,而无需依赖于路由判断。这种方法使得状态管理更加灵活,同时也保持了组件的独立性和可重用性。希望这篇文章能帮助你在 Vue 3 项目中实现类似的功能控制。
2024-11-29 17:41:58
675
原创 Git 操作
总之,Git 是一个非常强大的版本控制工具,掌握这些基本操作可以帮助你更好地管理你的代码。同时,Husky、npm 镜像源切换、ESLint 等工具也可以提高你的开发效率和代码质量。
2024-10-31 15:15:50
800
1
原创 nvm 版本管理工具
需要注意的是,降低 npm 版本可能会影响到你正在进行的项目,确保在进行操作之前了解其可能带来的影响,并备份重要的项目文件。同时,不同的项目可能对 npm 的版本有不同的要求,在切换版本时要谨慎考虑。需要注意的是,不同的项目可能对 Node.js 和 npm 的版本有不同的要求,确保在进行版本切换时不会影响到其他正在进行的项目。通常,不同的 Node.js 版本会自带不同版本的 npm。可以通过搜索或者查看 npm 的官方文档来确定如何安装特定版本的 npm。替换为你想要安装的 npm 版本号。
2024-10-30 11:29:31
408
原创 MySQL面试技术(分页)
SQL 分页方式的选择取决于所使用的数据库类型和版本,以及性能和可维护性的考量。不同的分页方式可能会在性能和适用性上有所差异,开发人员需要根据具体情况选择合适的方式来实现分页功能。
2024-08-21 11:01:38
797
原创 场景问题解决方案
所谓幂等:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。基于RESTful API的角度对部分常见类型请求的幂等性特点进行分析:java 即操作完成后,释放掉锁,因为幂等问题通常是一个请求快速过来两次或者多次,所以在释放锁之前让后来的同一个用户的请求直接失败即可,保证当前方法在短时间之内只能被执行一次,切记控制锁的粒度。单点登录的英文名叫做:Single Sign On(简称 SSO)。多系统即可能有多个Tomcat,而Session是依赖当前系统的Tomcat
2024-08-21 10:30:00
853
原创 Redis 技术详解
缓存预热是指系统上线后,提前将相关的缓存数据加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题,用户直接查询事先被预热的缓存数据。如果不进行预热,那么 Redis 初始状态数据为空,系统上线初期,对于高并发的流量,都会访问到数据库中,对数据库造成流量的压力。缓存预热解决方案数据量不大的时候,工程启动的时候进行加载缓存动作。数据量大的时候,设置一个定时任务脚本,进行缓存的刷新。数据量太大的时候,优先保证热点数据进行提前加载到缓存。
2024-08-20 15:34:31
2366
原创 消息中间件
EMQ 是什么:EMQ X 是开源社区中最流行的 MQTT 消息服务器,广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域,如物联网 M2M 通信、Android 消息推送、移动即时消息、智能硬件、车联网通信等。项目中的应用:在我们的项目中,主要使用 EMQ 实现服务器和物联网设备之间的信息传输,以及作为消息队列产品实现各个微服务之间的数据传输,例如设置状态实时监控、自动维修工单创建和自动补货工单创建、订单创建以及支付结果确认、设备出货控制、设置出货结果通知处理等。
2024-08-20 11:22:19
981
原创 微服务框架
在分布式系统中,服务可能失败导致雪崩,Hystrix 是防雪崩利器,具有服务降级、服务熔断、服务隔离、监控等防止雪崩的技术。服务降级:接口调用失败调用本地方法返回空。服务熔断:接口调用失败进入熔断方法返回错误信息。服务隔离:隔离服务之间相互影响。服务监控:记录服务调用的运行指标。在分布式系统中,一个业务因跨越不同数据库或不同微服务而包含多个子事务,要求所有子事务同时成功或失败,这就是分布式事务。例如某电商系统下单操作,需请求订单服务、账户服务、库存服务。
2024-08-20 10:16:30
1045
原创 SSM框架
我们需要增加新功能也方便,提高了系统的扩展性。如果数据库结果集中的列名和要封装实体的属性名有不一致的情况用 resultMap 属性,通过 resultMap 手动建立对象关系映射,resultMap 要配置一下表和类的一一对应关系,所以说就算你的字段名和你的实体类的属性名不一样也没关系,都会给你映射出来。分页插件的基本原理是使用 Mybatis 提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的 sql,然后重写 sql,根据 dialect 方言,添加对应的物理分页语句和物理分页参数。
2024-08-19 21:18:25
746
原创 MySQL面试相关精选
分类含义特点聚集索引(Clustered Index)将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据必须有,而且只有一个二级索引(Secondary Index)将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键可以存在多个如果存在主键,主键索引就是聚集索引。如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引。如果表没有主键,或没有合适的唯一索引,则 InnoDB 会自动生成一个 rowid 作为隐藏的聚集索引。
2024-08-19 18:26:33
1306
原创 Java-Web面试题汇总
形象举例:A 和 B 打电话,A 说“我没啥要说的了”,B 答“我知道了”,但 B 可能还有话,A 不能要求 B 跟着结束,B 说完“我说完了”,A 答“知道了”,通话结束。GET 方法主要用于获取信息,不会对服务器数据产生副作用,具有幂等性,且可以被缓存,适用于多次重复获取相同结果且不改变服务器状态的场景。POST 方法通常用于修改服务器上的数据,可能会产生副作用,不具有幂等性,不可被缓存,适用于向服务器发送需要处理和存储的数据的场景。总之,应根据具体应用需求选择合适的协议,以实现高效可靠的网络通信。
2024-08-19 10:05:56
1120
原创 JVM 相关面试题汇总
如果一个类加载器收到了类加载的请求,它首先不会自己去加载这个类,而是把这个请求委派给父类加载器去完成,每一层的类加载器都是如此,这样所有的加载请求都会被传送到顶层的启动类加载器中,只有当父加载无法完成加载请求(它的搜索范围中没找到所需的类)时,子加载器才会尝试去加载类。新生代垃圾回收器一般采用的是复制算法,复制算法的优点是效率高,缺点是内存利用率低;老年代回收器一般采用的是标记-整理的算法进行垃圾回收。分代回收器有两个分区:老生代和新生代,新生代默认的空间占比总空间的 1/3,老生代的默认占比是 2/3。
2024-08-18 12:08:42
965
原创 JVM参数与Status
通过在 JVM 启动时配置该参数,JVM 会先访问所有分配的内存,让操作系统将内存真正分配给 JVM,以便后续顺畅访问。:设置Eden区与Survivor区的比值为8,则两个Survivor区与一个Eden区的比值为2:8,即一个Survivor区占整个年轻代的1/10。:垃圾收集线程与应用线程并行工作,若垃圾收集线程工作时老年代内存不足,最好提前启动 CMS 收集垃圾(CMS GC)。表示仅使用设定的回收阈值(如 75%),若不指定,JVM 仅在第一次使用设定值,后续会自动调整。默认值 92%较大。
2024-08-18 12:05:51
1179
原创 集合类浅谈
本文将深入探讨 HashMap 的底层原理、解决哈希冲突的方法、扩容机制以及与 ConcurrentHashMap 的区别等方面。红黑树是一种平衡二叉搜索树,它通过颜色标记和旋转操作来保持树的平衡,从而提供高效的插入、删除和查找操作。扩容会创建一个更大的数组,并将原来的键值对重新映射到新的数组中。需要注意的是,HashMap 是非线程安全的,如果在多线程环境下使用,需要进行适当的同步处理或使用线程安全的 ConcurrentHashMap。需要注意的是,在多线程环境下,如果需要线程安全的。
2024-08-17 16:14:38
682
原创 XXL-Job:分布式任务调度神器详解(附Cron表达式)
XXL-Job 作为一款强大的分布式任务调度框架,为我们提供了高效、可靠的任务管理解决方案。本文将详细介绍 XXL-Job 的使用,包括环境准备、任务创建、调度策略、执行流程、监控与管理、扩展与定制以及最佳实践等方面。通过本文的介绍,相信你已经对 XXL-Job 的使用有了深入的了解。在实际应用中,根据项目需求合理配置和使用 XXL-Job,可以提高系统的稳定性和任务执行效率。在实际使用时,最好参考所使用的具体工具或框架的文档来确保 cron 表达式的正确解析和执行。
2024-08-15 20:00:11
1488
原创 MySQL 数据库使用
请注意,删除数据库是不可逆的操作,需谨慎使用。索引是提高数据库查询性能的重要手段。事务用于保证数据的一致性和完整性。使用以下命令从备份文件中恢复数据。(字符串,最大长度 50)和。
2024-08-15 19:40:39
1529
原创 精通Java内存管理:提升应用性能的秘诀
在Java开发中,内存管理是一个至关重要的环节。本文将深入探讨Java内存模型、垃圾回收机制以及如何通过代码优化来提升应用性能。我们将分享一些实用的技巧和最佳实践,帮助你的Java应用运行得更加高效。
2024-07-14 10:33:46
227
原创 RabbitMQ整理
RabbitMQ是一个开源的消息代理和队列服务器,广泛用于应用程序之间的异步消息传递。它基于高级消息队列协议(AMQP)并支持多种消息协议。
2024-07-14 10:32:45
662
原创 Sentinel和hystric的运用详解
Sentinel 是由阿里巴巴开源的用于微服务架构的高可用流量控制组件,它通过提供流量控制、熔断降级、系统自适应保护等功能,帮助保障微服务的稳定性。
2024-07-13 08:13:31
1818
原创 ES(Elasticsearch)的使用
Elasticsearch(简称ES)是一个基于Lucene的搜索引擎,提供全文搜索功能,并且具有HTTP web接口和无模式的JSON文档。
2024-07-13 08:12:48
1050
原创 MySQL与Redis优化
请注意,这些示例代码仅用于说明如何对MySQL和Redis进行优化,实际应用时需要根据具体的业务场景和需求进行调整。同时,优化措施的实施应谨慎进行,并在测试环境中充分测试以确保不会对现有系统造成负面影响。在进行优化时,需要根据实际业务场景和数据特点进行综合考虑,避免一刀切的优化策略。同时,优化过程中要持续监控性能指标,确保优化措施的有效性。好的,让我们通过一些示例代码来展示如何对MySQL和Redis进行优化。
2024-07-12 14:57:45
1666
原创 Feign的远程调用
Feign 是一个声明式的 Web 服务客户端,使得编写 Web 服务客户端变得更加简单。Feign 旨在简化 HTTP 客户端的编写,它整合了 Ribbon(提供客户端负载均衡)和 Hystrix(提供熔断机制),并且与 Spring Cloud 紧密集成,是 Spring Cloud 体系中的核心组件之一。
2024-07-12 14:52:36
433
原创 深入理解序列化与反序列化:概念、区别及应用场景
本文将探讨序列化与反序列化的概念、它们之间的区别,以及在不同应用场景下的实际应用。反序列化则是序列化的逆过程,即将序列化后的数据转换回原始的数据结构或对象。序列化与反序列化是数据交换的基础,选择合适的序列化格式对于系统的性能、安全性和兼容性至关重要。:在分布式系统中,序列化用于将对象转换为字节流,通过网络发送,然后在接收端进行反序列化。:应用程序状态或配置信息的持久化,通过序列化存储到磁盘,启动时反序列化以恢复状态。:RESTful API或SOAP服务处理请求和响应时,数据的序列化与反序列化。
2024-07-10 11:47:24
1438
原创 Void和返回值使用情况说明
在 Java 中,方法的返回类型定义了该方法执行完成后返回的数据类型。是一个特殊的返回类型,表示该方法不返回任何值。
2024-06-22 09:43:13
532
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅