- 博客(525)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 在家里用千兆宽带和公网IP搭建支持视频的社交论坛服务器
摘要:本文提供了一套完整的家用服务器搭建指南,针对视频社交论坛需求,从硬件配置、网络设置到软件规划给出专业建议。硬件方面推荐AMD Ryzen 7/i7处理器、32GB内存、RAID1存储等配置;网络设置重点包括公网IP申请、端口映射和DDNS服务;软件架构建议采用Nginx+MySQL+FFmpeg+Redis的技术组合,并详细说明了视频转码和带宽计算等关键注意事项。整套方案预算约5000-10000元,适合个人爱好者分阶段实施。
2025-11-16 22:24:43
893
原创 Java实现多线程上传文件
本文介绍了四种实现多线程文件上传的方法:1)使用CompletableFuture异步执行上传任务;2)通过线程池配合CountDownLatch控制并发;3)利用Spring的@Async注解实现异步处理;4)带有进度监控的多线程上传方案。每种方法都提供了完整的代码示例,包含错误处理、超时控制和性能监控。推荐使用CompletableFuture或Spring异步方案,它们提供了更简洁的API和更好的异常处理机制,同时也能有效提升批量文件上传的效率。
2025-11-03 21:08:56
291
原创 Java类加载和对象实例化
Java类加载与对象实例化执行顺序解析: 静态内容优先执行(类加载阶段): 静态变量初始化(首次使用类时执行一次) 静态代码块执行(仅执行一次) 实例内容随后执行(对象创建阶段): 实例变量初始化(每次new时执行) 实例代码块执行(每次new时执行) 构造方法执行(每次new时执行) 方法调用规则: 静态方法可直接通过类名调用 实例方法需对象实例化后调用 关键特点: 静态内容只初始化一次 实例内容每次创建对象都会执行 执行顺序:静态→实例→方法调用
2025-11-03 11:32:00
129
原创 导出HTML内容为PDF并保留样式
本文介绍了将HTML内容转换为PDF并保留样式的完整实现方案,重点推荐使用iText + PDFHTML方法。摘要如下: 核心方案:使用iText7库配合PDFHTML插件实现HTML转PDF功能,支持完整样式保留和中文处理 关键技术: 添加itext7-core和html2pdf依赖 提供HTML转PDF文件和字节数组两种输出方式 支持中文显示(需配置中文字体) 增强功能: 自动包装完整HTML文档结构 预置常用CSS样式(表格、标题、段落等) 异常处理和日志记录 实现效果:可将包含复杂样式的HTML内容
2025-10-28 21:13:53
420
原创 SpringBoot中合MyBatis Plus和PageHelper实现分页
摘要:本文详细介绍了SpringBoot整合MyBatis Plus和PageHelper实现分页的方案。通过添加依赖、配置分页插件、定义实体类和Mapper接口,无需编写SQL即可实现基本CRUD和分页功能。Service层演示了简单分页、条件分页和复杂查询的实现方式,Controller层提供对应的REST接口。该方案结合MyBatis Plus的Wrapper条件和PageHelper的分页能力,简化了分页查询的开发流程,支持排序、多条件筛选等常见需求。
2025-10-27 18:53:34
217
原创 SpringBoot 整合 FFmpeg 实现 MP4 转 MKV 格式
本文介绍了一个完整的SpringBoot整合FFmpeg实现视频格式转换的项目。项目采用Maven构建,包含标准SpringBoot项目结构,主要功能是将MP4转换为MKV格式。核心配置包括FFmpeg路径、超时时间和线程数等参数,通过YAML文件进行管理。项目提供了视频转换请求DTO和统一API响应格式,支持自定义视频编解码参数。系统采用分层架构设计,包含配置层、控制层、服务层和工具类,为视频格式转换提供了完整的RESTful API解决方案。
2025-10-23 16:21:28
430
原创 SpringBoot 整合 FFmpeg 的工具类
SpringBoot整合FFmpeg工具类实现,包含配置类和功能实现。配置类通过@ConfigurationProperties读取FFmpeg路径、超时时间和最大线程数等参数。工具类提供执行FFmpeg命令、音频转WAV格式和视频转码功能,支持自定义参数配置。通过ProcessBuilder处理命令执行流程,包含超时控制和输出处理,使用日志记录执行状态和异常信息。该工具类封装了FFmpeg常用操作,简化了音视频处理集成流程。
2025-10-23 15:56:03
348
原创 Java中Stream API处理Map初始化
摘要: Java Stream API 提供了多种灵活的方式处理Map的构建与更新操作。主要包括:1)使用Collectors.toMap()通过合并函数处理重复键,支持覆盖、保留旧值或求和等策略;2)对复杂对象可按属性分组并聚合计算(如总价值);3)通过groupingBy实现高级分组统计(如分类汇总、求最值);4)支持自定义合并逻辑实现复杂业务规则(如计算平均值)。这些方法能简洁高效地实现"存在则更新,不存在则添加"的Map操作需求。
2025-08-22 17:16:41
429
原创 Java中Stream API简介
Java 新版 Stream API 详解(8-17版):函数式数据处理利器 摘要: 本文系统讲解 Java Stream API 的核心概念与使用,涵盖 Java 8-17 版本新特性。主要内容包括: Stream 基础:创建流的3种方式(集合、静态方法、数组)及操作分类(中间/终端操作) 核心中间操作:filter过滤、map转换、flatMap扁平化、distinct去重、sorted排序及分页控制 终端操作:forEach遍历、collect收集(转List/Set/Map/分组)、reduce归约
2025-08-22 16:22:06
451
原创 Java的Stream API异常处理
Stream API 错误处理技巧 本文介绍了在 Java Stream API 中处理异常的几种有效方法: Lambda 内部处理:在 map/filter 操作中直接使用 try-catch 捕获异常,返回 null 或默认值,后续过滤掉无效结果。 包装方法:对于受检异常,创建包装函数将异常转换为运行时异常,保持流式编程风格。 Optional 工具类:构建安全操作方法返回 Optional 类型,利用 flatMap 自动过滤异常情况。 电商案例实践:展示了如何在实际业务中统计订单数据时,安全处理可能
2025-08-22 16:17:37
532
原创 Java中Stream API的filter,Map,reduce操作综合案例
本文展示了使用Java Stream API的filter→map→reduce流水线处理电商订单数据的案例。通过创建Order和OrderStats类,对电子产品类别且状态为"已完成"的订单进行统计分析。代码演示了两种实现方式:1)使用mapToDouble和collect计算总销售额、平均金额等统计指标;2)通过map转换和reduce聚合实现相同功能。案例输出显示了4个符合条件的电子产品订单,总金额10,996元,平均2,749元,最高4,599元,最低899元。这个示例完整展示了
2025-08-22 16:16:30
283
原创 SpringBoot中接受复杂嵌套JSON参数并过滤多余字段
本文介绍了在Spring Boot中使用DTO接收JSON数据并自动过滤未定义字段的方法。关键步骤包括:1)定义DTO类时添加@JsonIgnoreProperties(ignoreUnknown=true)注解;2)在Controller中使用@RequestBody接收数据;3)通过嵌套类处理复杂JSON结构。该方法能自动忽略JSON中的多余字段,保证数据安全性和结构清晰性,同时支持通过@Valid注解进行字段校验。测试表明,即使JSON包含未定义字段,系统也能正确过滤并处理有效数据。这是Spring
2025-08-21 17:16:26
429
原创 Redis中Stream详解及应用
Redis Stream 是一个日志结构的消息队列,支持数据的顺序存储和消费。与传统的队列不同,Redis Stream 可以被多个消费者组并行消费,而且允许存储大量消息并且可以方便地管理消费进度。
2025-04-22 20:56:35
1429
原创 Redis中RedisSearch详解及应用场景
是 Redis 的一个强大扩展模块,提供了丰富的搜索功能,如全文搜索、过滤、排序、聚合等。它的高性能和实时查询能力使得它非常适合用于搜索引擎、电子商务、社交平台、日志分析等场景。然而,在处理大规模数据或需要高度复杂查询的场景时,可能需要结合其他专用。
2025-04-22 20:54:43
1719
原创 Redis中的分布式锁及应用场景
Redis的分布式锁是通过键值对操作(如SETNXSETDEL等)来实现的,可以确保同一时刻只有一个客户端能够访问共享资源。分布式锁广泛应用于任务调度、资源限流、数据一致性保障等场景。在使用Redis分布式锁时,开发者需要。
2025-04-22 20:53:15
1492
原创 Redis中的Lua脚本详解及应用场景
Lua脚本在Redis中的应用非常广泛,提供了一种高效、原子性强的方式来处理复杂的Redis命令。它特别适合用在需要原子操作的场景,如分布式锁、批量数据处理、复杂的业务逻辑执行等。通过Lua脚本,可以减少客户端和Redis之间的通信,提升性能,同时保证数据一致性和原子性。
2025-04-22 20:52:04
1086
原创 Redis中的事务详解及应用场景
Redis事务通过MULTIEXECWATCH等命令支持一定的原子性操作,但它并不具备传统数据库事务的完整特性,如回滚和ACID一致性。它非常适合用于确保多个命令在并发场景下的顺序执行和原子性,尤其在缓存、分布式锁、计数器等场景中有广泛应用。
2025-04-22 20:49:24
1038
原创 Redis中的列表详解及应用场景
Redis的列表是一个非常强大且灵活的数据结构,能够高效地处理队列、栈、实时数据流、任务队列等应用场景。它的高效性、简单易用和支持阻塞操作,使其在许多需要处理高并发和实时数据的应用中都表现出色。在使用时,需要合理设计数据结构,避免长列表引发性能瓶颈。
2025-04-22 20:47:47
725
原创 Redis缓存穿透、击穿和雪崩详解
缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,导致每次请求都要访问数据库。缓存击穿是指一个热点key突然过期,此时大量并发请求直接穿透到数据库。缓存雪崩是指大量缓存key同时失效,导致所有请求直接访问数据库。问题类型触发条件影响范围核心解决方案缓存穿透查询不存在的数据单个不存在的key1. 缓存空对象 2. 布隆过滤器缓存击穿热点key突然失效单个热点key1. 互斥锁 2. 永不过期策略缓存雪崩大量key同时失效多个甚至全部key1. 差异化过期时间 2. 多级缓存。
2025-04-22 20:44:41
448
原创 Redis中的并发问题及解决方案
对于简单原子操作:使用Redis的INCR/DECR等原子命令对于复杂操作:使用Lua脚本保证原子性对于分布式锁:使用Redlock算法或Redisson等成熟库缓存一致性:采用"先更新数据库,再删除缓存"策略热点数据:采用永不过期或互斥锁策略批量操作:使用pipeline减少网络往返时间Redis的并发问题主要源于其单线程模型与客户端多线程访问之间的交互,合理使用Redis提供的事务、Lua脚本和原子操作可以解决大多数并发问题。
2025-04-22 20:43:27
501
原创 Redis中的HyperLogLog详解
Redis 的 HyperLogLog 是一种,用于,比如你想知道一个网站有多少独立访问用户(UV)。,无论你添加多少数据,它通常只占用 12KB 的内存。
2025-04-22 20:41:00
660
原创 Redis中的有序集合详解
Redis 的有序集合(Sorted Set,类型标识是zset)是集合和有序结构的结合体。每个元素是唯一的(不能重复)。每个元素关联一个score(浮点数),通过它进行排序。元素按 score 自动排序,支持范围查找、排名查找等操作。
2025-04-22 20:38:37
373
原创 Redis中Set集合案例: 学生选课系统
当然可以!下面是一个完整的 RedisSet类型常用操作示例,包括添加、删除、查询、集合运算等,使用的是redis-cli命令行方式操作,也适合理解在编程语言(如 Python、Java)中使用 Redis 的基本思路。
2025-04-22 20:37:28
364
原创 MySQL中的覆盖索引和回表操作
覆盖索引通过将查询所需的所有字段都包含在索引中,避免了回表的需要,从而提高了查询性能。回表是指索引中没有查询的所有数据列时,需要通过回到数据表中取出剩余的列,回表会增加I/O开销。在设计索引时,尽量通过复合索引来覆盖常见查询所需的列,从而优化查询性能。希望这个解释清晰地帮助你理解覆盖索引和回表的概念及其优化方法!如果还有具体的细节或其他问题,随时可以继续交流。
2025-04-22 20:33:16
799
原创 Redis中Set常用场景和命令
唯一标识存储(如黑名单、请求 token)社交关系(如好友、关注)集合运算(兴趣匹配、共同好友)抽奖/随机取值(用SPOP如果你有具体的业务需求(比如抽奖、签到、用户系统等),我可以帮你用 Redis Set 设计对应的数据模型和操作方案 🙌。
2025-04-13 02:43:13
506
原创 Redis中Pipline管道命令详解
Redis 的管道是指:一次性将多个 Redis 命令打包发送给 Redis 服务器,而不等待每个命令的响应,最后再统一读取这些响应。它是一种减少网络往返次数(RTT)的技术,而不是并发或多线程机制。Redis 的管道机制是一种优化批量操作网络性能的利器,能极大减少 RTTPing 次数,提升吞吐,但它不是事务、也不保证原子性。如果你希望我给出你项目里 Redis 管道的最佳实践代码,我也可以帮你写段示例,比如缓存预热、批量写、批量查询等都可以 👍。
2025-04-13 02:41:58
764
原创 Redis中Hash经典应用场景之Session
应用场景是否适合用 Hash用户登录状态存储✅ 非常适合临时授权信息✅ 可设置过期用户购物车、配置缓存✅ Hash 很适合结构化数据高并发会话控制✅ Redis 高性能支持单字段频繁修改✅ HSET 支持原子操作。
2025-04-13 02:32:30
456
原创 Redis中将日期序列化成UNIX时间戳格式
场景是否适合用时间戳任务队列调度✅ 需要排序活跃时间记录✅ 便于比较日志时间存储✅ 高效存储界面展示(格式化)❌ 需要转换回日期格式显示。
2025-04-13 02:31:45
424
原创 MySQL中索引失效的场景
MySQL 中索引对查询性能非常关键,但,导致查询变慢。以下是索引失效的,并附有示例说明,帮你快速定位和避免这些问题。
2025-04-13 00:52:54
469
原创 MySQL中自定义函数详解
MySQL 的自定义函数是一段可重用的 SQL 代码块,用于接收参数并返回一个单一结果值,类似于编程语言中的函数。你可以在SELECTWHEREORDER BY等语句中调用它。
2025-04-13 00:52:23
626
原创 MySQL中存储过程和函数的区别
函数 = 返回一个值,用于查询中;存储过程 = 封装逻辑流程,可传出多个结果。如果你告诉我你现在在做什么项目,我可以帮你判断是用函数合适,还是存储过程更好 👍你也可以说一下想封装什么样的逻辑,我可以直接写出来对比给你看。
2025-04-13 00:33:48
645
原创 MySQL中Trigger详解
在 MySQL 中,是一种特殊的存储程序,它会在对某张表执行 INSERTUPDATEDELETE操作时自动被触发执行。
2025-04-13 00:32:11
474
原创 MySQL 中的 CAST 函数详解
CAST 函数是 MySQL 中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型。
2025-04-13 00:31:39
5369
1
原创 MySQL 控制流程函数详解
MySQL 提供了多种控制流程函数,用于在 SQL 查询中实现条件逻辑、循环和流程控制。这些函数可以极大地增强 SQL 的表达能力,使查询更加灵活和强大。
2025-04-12 01:01:33
450
原创 MySQL 字符串函数详解
MySQL 提供了丰富的字符串处理函数,可以用于字符串的创建、修改、比较、搜索和格式化等操作。下面分类介绍常用的字符串函数。
2025-04-12 01:00:18
440
原创 MySQL 行级锁详解:SELECT FOR UPDATE 和 LOCK IN SHARE MODE
MySQL的InnoDB引擎支持行级锁定,主要通过(排他锁/X锁)和(共享锁/S锁)实现。这两种锁定机制为并发事务提供了精细的控制能力。
2025-04-12 00:59:45
1359
原创 MySQL 事务隔离级别详解
事务隔离级别是数据库管理系统用来控制事务间相互影响程度的重要机制。MySQL支持四种标准的事务隔离级别,每种级别在数据一致性和并发性能之间提供不同的平衡。
2025-04-12 00:59:12
1334
Maven项目整合Kafka
2023-03-12
Storm综合案例二Storm集群向Kafka集群读取数据并写入MySQL远程模式
2023-03-12
Storm综合案例一Storm集群向Kafka集群写入数据远程模式
2023-03-12
StormStorm集成Kafka 写数据到Kafka
2023-03-12
StormStorm集成Kafka 从Kafka中读取数据
2023-03-12
基于Storm本地集群搭建实时统计CallLog实现可运行
2023-02-25
SpringCloudAlibaba七Canal广告微服务
2022-10-23
SpringCloudAlibaba四Nacos Config 多环境切换与公共配置
2022-10-21
SpringCloudAlibaba五整合Sentinel
2022-10-21
SpringCloudAlibaba二整合Nacos
2022-10-19
SpringCloudAlibaba一入门案例
2022-10-19
毕业设计 高校排课系统 源码+数据库SQL脚本
2022-07-08
毕业设计 图书管理系统 源码+数据库SQL脚本
2022-07-08
Organic水果蔬菜商城
2020-10-26
jquery中thmeleaf模板很多标签使用不了的问题
2020-03-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅