- 博客(37)
- 收藏
- 关注
原创 Redis为什么这么快?Redis的线程模型与Redis多线程
多路I/O复用模型是利用 select、poll、epoll 可以同时监察多个流的 I/O 事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有 I/O 事件时,就从阻塞态中唤醒,然后程序就会轮询一遍所有的流(epoll 是只轮询那些真正发出了事件的流),并且依次顺序的处理就绪的流,这种做法就避免了大量的无用操作。在redis的多线程模式下,获取、解析命令,以及输出结果着两个过程,可以配置成多线程执行的,因为它毕竟是我们定位到的主要耗时点,但是命令的执行,也就是内存操作,依然是单线程运行的。
2026-04-04 04:39:51
332
原创 MySql-9.1.0安装详细教程(保姆级)
MySQL是一个流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。MySQL以其体积小、速度快、总体拥有成本低的特点,成为中小型和大型网站开发的优选数据库系统。它使用标准的SQL语言进行数据操作,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库。
2026-04-04 01:39:46
348
原创 Springboot中CommandLineRunner的用法以及执行顺序的控制
在 Spring Boot 应用程序中,所有实现了 `CommandLineRunner` 接口的 `@Component` 类的 `run` 方法并不是严格保证顺序串行执行的。在这个示例中,通过 `@Order` 注解设置了 `FirstRunner` 和 `SecondRunner` 的执行顺序,`FirstRunner` 的 `run` 方法会在 `SecondRunner` 的 `run` 方法之前执行。这使得开发人员能够方便地在应用程序启动后执行一些必要的操作。// 在应用程序启动后执行的逻辑。
2026-04-02 07:43:50
166
原创 PostgreSQL 向量扩展插件pgvector安装和使用
重新修改.bash_profile,配置PG_CONFIG和LD_LIBRARY_PATH,指定安装的postgresql 16.3版本。make编译调用的postgresql不是之前安装的 16.3,而是apt-get 安装的10.23版本。利用pgvector 前提是事先安装好postgresql,安装postgresql例可参考下文。make编译pgvector时无法识别安装的postgresql。安装的版本不是最新的版本而是10.23。pgvector的安装成功。
2026-04-02 04:27:11
394
原创 MySQL JSON数据类型全解析(JSON datatype and functions)
JSON(JavaScript Object Notation)是一种常见的信息交换格式,其简单易读且非常适合程序处理。MySQL从5.7版本开始支持JSON数据类型,本文对MySQL中JSON数据类型的使用进行一个总结。在MySQL中,JSON数据是以字符串形式表现的,但是它有自己的解析规则,利用某些途径可以将字符串转换为JSON类型数据,这个过程叫做规范化(normalization),在规范化过程中,MySQL会对数据格式进行验证,若字符串不是有效的JSON格式,那么就会报错。
2026-04-02 01:10:23
160
原创 Java_ElasticSearch(ES)——分布式搜索引擎
Elasticsearch是一个开源的分布式搜索和分析引擎,最初由Elastic公司开发。它构建在Apache Lucene搜索引擎库之上,提供了一个强大的全文搜索和分析引擎,它结合kibana、Logstash、Beats,是一整套技术栈,被叫做ELK,适用于各种用例,包括文本搜索、日志分析、实时数据分析、监控和报警等。上述配置文件即表示添加扩展词典ext.dic,它就会在当前配置文件所在的目录中找这个文件。这种方式在文档id不存在时,就会相当于一个新增操作。
2026-04-01 23:18:25
285
原创 深入了解Text2SQL开源项目(Chat2DB、SQL Chat 、Wren AI 、Vanna)
在数据驱动决策的时代,将自然语言查询转化为结构化查询语言(SQL)的能力变得日益重要。无论是小型创业公司还是大型企业,都希望能够更轻松地从海量的数据中挖掘出有价值的见解。然而,对于那些不熟悉SQL或者数据库架构的用户来说,直接编写复杂的查询语句往往是一个巨大的挑战。正是为了解决这一问题,Text2SQL技术应运而生,它允许用户通过简单的自然语言描述来获取他们所需的数据库信息。近年来,随着人工智能和机器学习领域的迅速发展,Text2SQL技术也取得了显著的进步。
2026-04-01 19:54:32
338
原创 在 MySQL 中使用 `REPLACE` 函数
在 MySQL 中,REPLACE函数是一个用于处理字符串的强大工具。它的主要功能是替换字符串中的某些子字符串。REPLACE函数在数据清理、格式化以及处理文本数据时非常有用。本文将详细介绍REPLACE函数的使用方法,包括函数的语法、示例以及实际应用场景。
2026-04-01 05:51:32
232
原创 【Golang】——Gin 框架中间件详解:从基础到实战
中间件是一种拦截 HTTP 请求的处理机制,通常用于在请求到达最终处理函数之前进行操作。通过中间件可以进行认证、日志记录、错误处理等操作,并且可以控制请求是否继续传递给下一个中间件或路由处理函数。在 Gin 中,自定义中间件可以通过定义一个类型的函数来实现。// 请求前println("请求开始")// 继续到下一个中间件或处理函数c.Next()// 请求后println("请求结束")// 全局应用中间件})当访问/ping。
2026-04-01 02:46:50
348
原创 SpringBootInvalid bound statement (not found)的原因和解决方案
查看相对应的mapper中的接口是否添加了**@mapper注解**且点击其跳转标志确认是否关联。3.检查 mapper namespace的路径是否和其mapper实例类的路径是否一致。情况四:mapper.xml未放到指定的resource文件中,将其移动至其文件即可。
2026-03-31 06:06:08
174
原创 PageHelper 解析及实现原理
面向关系型数据库的 SQL 查询和数据导出时,如果数据条数非常大,直接将所有数据一次性查出或者导出显然是不可行的。这时候就需要进行分页查询或分页导出,将查询或导出的数据按照指定大小分页加载或写入,从而提高查询或导出的效率。而分页查询或分页导出的实现过程比较繁琐,需要考虑很多细节问题,容易出错。因此,出现了一些支持分页查询或分页导出的插件或工具类,例如 MyBatis-Plus 的分页插件 PageHelper。PageHelper是Mybatis-Plus中的一个插件,主要用于实现数据库的分页查询功能。
2026-03-31 02:52:42
193
原创 node.js+npm的环境配置以及添加镜像(保姆级教程)
双击安装包,点击【Next】,勾选使用许可协议,点击【Next】,选择安装位置(可根据个人情况更换路径,例如在 D:App odejs)我上面点了Add to PATH,在安装的时候就自动配置好了,如果不行再根据这个方法手动配置一下环境变量。4.5在这里填入nodejs的安装地址,比如:D:App odejs,之后点击【确定】不选中,直接点击【Next】按钮,之后点击【Install】安装。4.1进入环境变量,编辑【系统变量】下的变量【Path】4.3选中系统变量中的path,点击【编辑】
2026-03-30 05:41:06
98
原创 linux redis简单操作
进入到redis文件下src/bin目录下 将redis-cli 复制到 /usr/local/bin/目录下,让redis-cli指令可以在任意目录下直接使用。2、安装完成后终端输入redis-cli 报 redis-cli -bash: redis-cli: command not found 问题解决。进入到redis/bin目录执行启动命令,其中redis.conf需要写实际的位置,同redis-server目录下时执行以下命令。5、redis有密码的,登录 输入密码。14、redis启动。
2026-03-30 02:08:16
171
原创 【MySQL统计函数count详解】
count() 是一个聚合函数,返回指定匹配条件的行数。开发中常用来统计表中数据,全部数据,不为null数据,或者去重数据。
2026-03-28 13:05:33
208
原创 SpringBoot后端服务重定向
选择哪种方法取决于具体需求和架构。在我的场景中,使用了Spring MVC的重定向。但如果需要一个长期的解决方案,需要考虑前端同步更新,避免不必要的重定向的开销。或者使用反向代理或者Spring Cloud Gateway。愿你我都能在各自的领域里不断成长,勇敢追求梦想,同时也保持对世界的好奇与善意!
2026-03-28 08:57:26
192
原创 Nodemailer使用教程:在Node.js中发送电子邮件
Nodemailer是Node.js平台上最流行的电子邮件发送库,它提供了一个简单而强大的解决方案,支持Unicode内容、HTML内容、附件、图片嵌入等功能。SMTP(Simple Mail Transfer Protocol,简单邮件传输协议) 是一个在互联网上发送电子邮件的标准协议。
2026-03-27 13:55:47
332
原创 MySql中的事务、MySql事务详解、MySql隔离级别
思考:我去银行给朋友汇款,我卡上有100元,朋友卡上50元,我给朋友转账50元,如果我的钱刚扣,而朋友的钱又没加时,网线断了, 怎么办(Transaction)是数据库管理系统(DBMS)中的一个核心概念,它确保了一系列数据库操作要么全部成功,要么全部失败,从而维护数据库的完整性和一致性。MySQL在5.5版本开始,就将InnoDB引擎作为默认存储引擎。由于Mysql中的事务是存储引擎实现,而且只有InnoDB支持事务。
2026-03-26 03:19:13
338
原创 AI框架之Spring AI与Spring Cloud Alibaba AI使用讲解
在软件开发的世界中,Java一直是企业级应用的主力军。而Spring框架,尤其是Spring Boot,以其生态系统的丰富性,为开发者提供了无与伦比的便利。现在,Spring Boot正迈向一个新的纪元——人工智-能的时代。Spring AI项目的推出,不仅标志着Spring生态的进一步扩展,也为广大Java开发者开启了一个全新的编程领域。Spring AI是从著名的Python。
2026-03-26 00:12:41
377
原创 MySQL:数据查询-limit
LIMIT` 是 MySQL 中一个非常实用和强大的功能,能够帮助控制查询结果的行数,适用于各种场景,尤其是数据分页和结果集限制。对于大多数涉及大量数据的查询来说,合理地使用 `LIMIT` 可以显著改善性能。
2026-03-25 04:55:51
191
原创 Linux安装Redis以及Redis三种启动方式
也就是上面我们说的,窗口要一直打开。后台进程启动搞完之后,以后开启redis后,就可以去进行其他操作了(在src目录下 ./redis-server /opt/soft/redis-4.0.6/redis.conf启动redis)。此时Redis服务已经可以成功启动了,但是小问题来了,界面一直停留在Redis服务窗口中,按ctrl+c虽然可以屏蔽服务窗口,但是也会结束Redis服务。./redis-server代表要启动redis,后面一串代码进入redis.conf来开启redis,就是路径。
2026-03-25 02:20:46
150
原创 【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库
*前言:**本节内容介绍使用C/C++访问数据库, 包括对数据库的增删查改操作。主要是学习一些接口的调用, 废话不多说, 开始我们的学习吧!
2026-03-24 14:41:06
331
原创 spring源码编译,遇到的坑
a>根据spring根目录下的gradle–>D:springspring-framework-5.2.xgradlewrappergradle-wrapper.properties文件里的distributionUrl,下载对应的gradle(最好是根据这里的版本去下载gradle,否则可能出现这样或者那样的错误)例如:file:///A:/jobsoft/Gradle/gradle-5.6.4-all.zip。右键需要下载的版本的链接,到迅雷里下载,特别快(亲身体验,在外面是下载不下来的,很难)
2026-03-24 04:29:44
174
原创 Redis连接池
redisTemplate.opsForValue().set(“name”,“谷歌”);支持基于JDK、JSON、字符串、Spring对象的数据序列化及反序列化。提供了对不同Redis客户端的整合(Lettuce和Jedis)提供了RedisTemplate统一API来操作Redis。支持基于Redis的JDKCollection实现。<–基于Springboot引入这两个依赖:–>支持Redis哨兵和Redis集群。支持基于Lettuce的响应式编程。支持Redis的发布订阅模型。
2026-03-23 11:28:38
210
原创 MySQL——用户管理
在使用MySQL时,初始都是只有一个,跟Linux类似,拥有最高管理员权限。如果数据库将来要被多个人使用,如果所有人都通过root登录,那么就可以对所有的数据库信息进行操作,这显然是不安全的,因此MySQL也必须做用户管理。
2026-03-23 03:31:02
182
原创 【MySQL】RedHat8安装mysql9.1
安装包:mysql-enterprise-9.1.0_el8_x86_64_bundle.tar。日志中获取mysql初始密码,进入后修改密码。下载对应版本的jdbc。
2026-03-22 05:04:41
234
原创 Spring 多实例注入
Spring 容器中保存的 bean 默认是单例的,通常来说这样做可以降低 bean 对象创建的频率,在某些访问量大的场景下可以节省对象创建消耗的时间,提高响应性能。但在一些其他场景,比如脚本调度处理多个消息队列中的消息,这时候拉取各个队列消息的步骤是完全相同的,只不过各条队列的名称和密码不一样,显然可以使用一个专门的。自动注入无法保证每次获取的都是新的实例,一个解决方法是通过 Spring 的。,这样每次从 Spring 容器中获取其实例的时候都会返回一个新的对象。指定类的代理模式,这样使用注解。
2026-03-22 01:54:53
175
原创 PostgreSQL异常:An IO error occurred while sending to the backend
在使用PostgreSQL。
2026-03-21 06:28:04
28
原创 PostgreSQL常用时间函数与时间计算提取示例说明
主要用于计算一些特殊时间,函数说明截断成指定的精度,第1个参数指定精度select date_trunc('year',now()) as 当年第1天,date_trunc('year',now() + interval '1 year') - interval '1 day' as 当年最后1天,date_trunc('month',now()) as 当月第1天,
2026-03-21 06:27:18
354
原创 【Spring Boot】统一数据返回
其实统一数据返回非常简单,在实现时要加入类注解@ControllerAdvice(这是一个表示控制通知的注解,在接下来的统一异常处理也要运用到),在添加类注解后还要在实现ResponseBodyAdvice接口,然后重写接口的responseAdvice接口和beforeBodyWriter方法即可实现。其实统一数据返回是运用了AOP(对某一类事情的集中处理)的思维,简单概括就是在我们进行前后端数据交互的时候,能够让后端的数据进行统一的打包封装,返回给前端,便于前后端的数据处理。
2026-03-20 03:09:57
323
原创 SQL中Limit的用法详解
LIMIT关键字是SQL中一个非常有用的工具,它可以用来限制查询结果返回的记录数量,实现数据的分页,或者从复杂查询中获取特定的记录。掌握LIMIT关键字的使用方法,可以让你更加高效地操作数据库。在实际应用中,需要注意LIMIT与查询结果集的相关性,以及常见错误用法和注意事项。
2026-03-20 00:47:32
201
原创 SpringBoot下获取resources目录下文件的常用方法
不想折腾的同学可以直接用method3和method4的方法来使用,也可以将模板和资源文件外置,通过绝对路径获取对应文件。有好的方法也欢迎大家一起交流沟通~
2026-03-19 03:09:27
176
原创 redis的启动方式
设置为开机自启动,直接配置开启自启动 chkconfig redisd on 发现错误: service redisd does not support chkconfig。将启动脚本复制到/etc/init.d目录下,本例将启动脚本命名为redisd(通常都以d结尾表示是后台自启动服务)。可以为redis服务启动指定配置文件,例如配置为/etc/redis/6379.conf。#加上‘&’号使redis以后台程序方式运行。3.使用redis启动脚本设置开机自启动。redis的启动方式。
2026-03-19 00:43:51
224
原创 nginx的重定向
location = 完整路径 = 1.jpg即完整的一个字也不能少location^~location ~、location /(字符串)部分起始位置、location /
2026-03-18 12:13:52
181
原创 MySQL无法连接到本地localhost的解决办法2024.11.8
我的MySQL可以远程连接服务器,但无法连接自己的localhost。1. 检查环境变量是否正确:发现没有配置,加上正确的环境变量↓。2.加上环境变量后,仍然显示不能连接到我的localhost。step3:再在cmd中,输入以下内容,重新安装服务。step1:用管理员权限打开cmd,在命令框中输入。4.没发现问题(大雾)
2026-03-18 10:56:47
10
原创 SpringBoot中如何手动开启事务
一、使用 TransactionTemplate1、配置 TransactionTemplate2、使用 TransactionTemplate二、使用 PlatformTransactionManager 直接管理事务1、注入 PlatformTransactionManager在Spring Boot中,虽然大多数情况下推荐使用@Transactional注解来管理事务,但有时需要更灵活地手动控制事务。
2026-03-17 23:35:07
33
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅