https://api.vvhan.com/api/avatar/boy

技术博客分享

Redis高性能内存数据库的六大核心优势

Redis是一个高性能的内存数据库,支持键值对存储和多种数据结构。它具有可编程性,支持Lua脚本实现原子操作;可扩展性,允许开发者自定义功能;持久化机制确保数据安全;集群功能实现水平扩展;高可用性通过复制和故障转移保障服务稳定。Redis采用单线程模型处理核心操作,避免了多线程竞争,加上内存操作和高效的数据结构,使其性能卓越。这些特性使其在分布式系统中广泛应用。

Spring-Boot

本文介绍了Spring的纯注解配置和SpringBoot的基础知识。在Spring部分,详细讲解了@Bean、@PropertySource、@ComponentScan、@Configuration和@Import等核心注解的使用方法及其与XML配置的对比。在SpringBoot部分,阐述了其简化配置、内嵌服务器等特点,并通过入门案例演示了项目搭建过程。还介绍了启动器(starter)的命名规范、两种配置文件格式(properties/yml),以及jar和war两种发布方式。最后讲解了全局异常处理、单元

苍穹外卖-菜品新增删除

这行代码把“HTTP 请求 → JSON → Java 对象 → 业务 → 统一响应”全链路打包好,开发者只需关心真正的业务逻辑,其余由 SpringMVC + Jackson + 统一异常处理自动完成。删除菜品表中的菜品数据这里,每次循环需要执行2次SQL,可能会出现性能问题。未捕获的运行时异常 → Spring 默认 500 → 也可被同一处理器统一包装成。批量删除用foreach循环来遍历,删除被套餐关联的SQL语句比较复杂。→ 同样进全局处理器 → 前端收到 0/"菜品已存在"。

Kimi-AudioKimi开源的通用音频基础模型,支持语音识别音频理解等多种任务

Kimi - Audio 确实为开发者提供了领先的音频处理基础设施,其多任务整合与开源策略极大推动了技术民主化。虽然它在轻量化部署和长音频处理上还有优化空间,但作为完全开源的通用音频模型,已经足够惊艳。在 AI 音频技术快速发展的 2025 年,这种能让开发者免费使用的强大工具,正在加速音频 AI 应用的创新和普及。多语种音频训练的大模型,整合了语音识别、音频理解与语音对话三大能力,堪称音频界的 "全能选手"。我们对比了 2025 年主流的音频 AI 模型,看看它的真实实力。VoiceBench 满分。

Jupyter-Notebook下载安装使用教程附安装包,图文并茂

Jupyter Notebook(简称 Jupyter)是一款 WEB 应用程序,需要在浏览器中打开使用。按照 Jupyter 创始人的说法,起初他只想做一个综合 Ju(Julia)、Py(Python)和 R 三种科学运行语言的计算工具平台,所以将其命名为 Jupyter。发展到现在,Jupyter 已经成为了一个几乎支持所有语言,能够把软件代码、计算输出结果、解释文档、多媒体资源整合在一起的多功能科学运行平台。图 1 Jupyter界面的简单介绍。

io的异步处理io_uring,实现io_uring_tcp_server

io_uring_setup --- io_uring_queue_init_params --- 创建sqe、cqe环形队列(含mmap)若想重复监控,就需要重复set。io_uring_register --- io_uring_prep_accept等 --- 请求放到sqe。io_uring_entry --- io_uring_submit --- 把sqe中所有请求交由内核。set_event_accept、set_event_recv、set_event_send的封装。

Linux之线程池

线程池是提升Linux程序性能的利器,它通过复用固定数量的线程来处理异步任务。但其核心的“生产者-消费者”模型(任务队列 + 工作线程)也潜藏着死锁风险。主要风险源于任务间的隐式依赖。当一个任务(Task A)的执行结果依赖于另一个任务(Task B)时,如果所有线程都在等待类似Task A的依赖任务完成,而Task B因线程耗尽而无法被调度执行,整个线程池就会陷入相互等待的僵局,即池-induced死锁。