• 博客(212)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis 中 Lua 与 Pipeline 的相同点,区别,使用场景

Redis提供了Lua脚本和Pipeline两种批量操作方式。Lua脚本通过在服务端原子性执行多个命令,适用于需要事务保障的场景如分布式锁、库存扣减等,但会阻塞其他请求。Pipeline则通过减少网络往返次数来提升大批量命令的执行效率,适合无依赖的批量数据操作,但不保证原子性。两者都能减少网络开销,但Lua支持复杂逻辑而Pipeline仅支持简单命令堆叠。使用时需注意:Lua脚本应避免长时间运行,Pipeline需合理控制批量大小。

2026-01-24 16:40:16 554

原创 AI知识扫盲

本文介绍了人工智能领域的三大关键技术:大模型、智能体和MCP协议。大模型基于Transformer架构,分为多模态、通用和专用语言模型,应用于内容生成、编程辅助等场景。智能体通过"大模型+插件"架构实现自主决策和长期记忆,能随使用时间提升服务精准度。MCP协议则规范了大模型与外部工具间的通信标准,确保系统间高效协作。这些技术共同推动AI从被动响应向主动服务演进。

2025-11-21 16:36:27 504

原创 AI相关学习目录

AI目录。

2025-11-20 14:37:54 173

原创 MCP (Model Context Protocol) 模型上下文协议

MCP(Model Context Protocol)是Anthropic提出的AI模型与外部工具交互的开放协议标准。它通过JSON-RPC 2.0格式统一了LLM访问外部数据源和工具的通信接口,解决不同厂商AI模型与多样化外部服务的连接问题。协议包含初始化、工具发现和操作调用三个阶段,支持能力协商、动态工具列表和用户监督机制。MCP允许模型自动发现和调用工具,同时强调用户控制,通过审批、权限设置和活动日志确保安全性。该协议使AI应用能整合各类外部功能,为模型提供扩展能力,同时保持标准化交互流程。

2025-11-03 10:51:25 1364

原创 联合索引,最左前缀原则,特殊场景案例

摘要: 联合索引遵循最左前缀原则,必须从最左字段开始按顺序使用,不能跳过中间字段。查询时应将等值条件放在前面,范围查询放后面。对于name, age, sex联合索引,WHERE name='张三'命中索引,而WHERE age=25或WHERE name='张三' AND sex='男'(跳过age)会失效。模糊查询LIKE '张三%'可命中,但LIKE '%张三'失效。避免对索引字段使用函数或表达式(如UPPER(name)),否则索引失效。OR条件、不等于和NULL查询也可能导致索引失效。合理设计索引

2025-10-16 15:04:12 1102

原创 CROSS JOIN

摘要:CROSS JOIN(交叉连接)用于生成表的笛卡尔积,将两个表的每一行互相组合。与INNER JOIN不同,它不基于关联条件,结果行数为两表行数的乘积。电商系统中常用它生成颜色和尺寸的所有组合(如Red-Small、Blue-Large)。使用时需注意数据量可能过大,可通过WHERE筛选避免性能问题。若INNER JOIN未指定ON条件,效果等同于CROSS JOIN。(149字)

2025-10-11 11:22:47 400

原创 RedoLog(重做日志)、UndoLog(撤销日志) 和 Binlog(二进制日志)

MySQL日志系统解析:InnoDB与MySQL Server层日志机制对比 摘要:本文深入分析了MySQL中三种核心日志的区别与作用。InnoDB引擎独有的RedoLog(重做日志)记录物理页修改,确保事务持久性和崩溃恢复;UndoLog(撤销日志)保存数据修改前值,支持事务回滚和MVCC。而Binlog(二进制日志)属于MySQL Server层,记录所有数据修改逻辑,用于主从复制和数据恢复。文章详细对比了三者的来源、内容、写入方式及安全性差异,并介绍了RedoLog的刷盘机制、UndoLog的类型区分

2025-09-30 15:20:54 740

原创 过滤器Filter、拦截器Interceptor

本文对比了过滤器(Filter)和拦截器(Interceptor)的区别。过滤器基于Servlet容器,用于日志记录、身份验证等底层操作;拦截器基于Spring框架,用于权限检查、性能监控等业务逻辑。二者在实现方式、执行顺序、依赖性和使用场景上存在差异。文章还详细介绍了过滤器(init/doFilter/destroy)和拦截器(preHandle/postHandle/afterCompletion)的核心方法,并提供了官方文档链接供参考。

2025-09-26 17:25:10 1094

原创 使用redis的发布/订阅(Pub/Sub), 实现消息队列

Redis发布订阅(Pub/Sub)提供轻量级实时消息传递,包含发布者、订阅者和频道三个核心组件。虽然存在消息不持久化、无ACK机制等局限性,但对于简单业务场景仍具优势。实现时需配置监听器容器(RedisMessageListenerContainer)和消息处理器,通过RedisTemplate的convertAndSend方法发布消息。相比专业消息队列(RocketMQ等),Redis Pub/Sub在部署复杂度、实时性方面表现更好,但可靠性较低,适合对消息可靠性要求不高的场景。

2025-09-08 18:06:32 702

原创 redis缓存、数据库的一致性

Redis缓存与数据库一致性问题源于两者缺乏事务保证,导致数据更新时无法同时成功或失败。该问题无法完全解决,只能通过缩短更新窗口实现最终一致。读取请求通常采用"cache aside"策略,优先查询Redis缓存,未命中再查数据库并更新缓存。更新请求有四种策略:1)先更数据库后更缓存;2)先更缓存后更数据库;3)先删缓存后更数据库;4)先更数据库后删缓存。每种策略在并发场景下都可能出现不一致问题,需配合分布式锁等方案优化。推荐使用"先更数据库后删缓存"策略,因其时间窗

2025-08-12 17:43:54 901

原创 spring Bean生命周期 源代码分析 AbstractAutowireCapableBeanFactory createBean doCreateBean

spring Bean生命周期 源代码分析 AbstractAutowireCapableBeanFactory createBean doCreateBean (1)设置bean的BeanName、BeanClassLoader、BeanFactory; 方法是invokeAwareMethods (2)初始化前置处理, 方法是applyBeanPostProcessorsBeforeInitialization (3)具体初始化, 方法是invokeInitMethods; 判断是否自定义初

2024-02-08 15:52:05 795 1

原创 @Autowired 和 @Resource 区别, 及参数说明

引用所指向的资源的名称。它可以使用全局JNDI名称链接到任何兼容的资源。对于方法注释,默认值是与该方法对应的JavaBeans属性名。默认值:java.lang.Object.class。可以向Deployer提供描述,以帮助选择正确的资源。对于方法注释,默认值是JavaBeans属性的类型。对于类注释,没有默认值,必须指定该值。对于类注释,没有默认值,必须指定该值。对于字段注释,默认值为字段的类型。对于字段注释,默认值为字段名称。声明是否需要带注释的依赖项。资源的Java类型。资源的身份验证类型。

2024-01-29 16:50:36 866

转载 IDEA插件——激活JRebel

https://www.cnblogs.com/lucky-jun/p/16683880.html

2024-01-16 13:42:52 434

原创 linux 基础命令,示例

【代码】linux 基础命令,示例。

2023-12-18 16:15:09 741

原创 Redis 数据的持久化 RDB、AOF、RDB + AOF、No persistence 各自优缺点

Redis持久化选项有4种RDB (Redis Database) 以指定的时间间隔进行数据的快照备份。AOF (Append Only File) 记录更改数据的命令(例如SET), 然后在重启时再次执行这些命令,从而恢复数据。RDB + AOF 组合使用No persistence 禁用持久化

2023-12-07 15:11:29 1206

原创 责任链模式

个人理解责任链模式在于,将业务功能拆分成各节点(职责节点),再打包成有顺序性的链路。

2023-12-01 16:20:17 1297

原创 模版模式 设计模式

**case "Simlpe" : //可以利用一些获取Bean的工具获取, 避免new //SpringApplicationUtil.getBean(SimlpeOrder.class);} } /*** 检查参数/*** 获取商品/*** 扣减库存/*** 扣减积分/*** 保存订单/*** 执行模版/**

2023-11-22 14:26:17 991

原创 抽象工厂模式

个人理解,抽象工厂目的和简单工厂大体相同,都是在于业务执行器的选择,也就是if else 的处理, 抽象工厂是一个。在的下单业务中,对于不同的类型的商品(鞋子、帽子),包含南方、北方生产厂商, 两个厂商都可以生产鞋子、帽子。继承AbstractOrder, 实现厂商下单逻辑, 同时也可以调用父级AbstractOrder的公共方法。当生产厂商、商品类型更多的时候,添加实现类,能够利用拆分不同的下单业务,约束接口, 抽取公共方法,统一参数等。可以获取厂商&商品类型的实例, 也可以获取商品类型的实例;

2023-11-21 15:05:27 824

原创 简单工厂模式

在的下单业务中,对于不同的类型的商品(鞋子、帽子),需要处理的下单业务部分相同,部分不同这时候可以利用简单工厂模式,依据不同的商品类型,`调用不同的处理器,进行下单`1.定义 `抽象类 AbstractOrder` 定义声明下单方法, 实现公共下单逻辑; 提供获取对应商品类型的实例 `HatOrder(帽子业务)`、 `ShoeOrder(鞋子业务)`2.定义 实现类 HatOrder(帽子)、 ShoeOrder(鞋子)继承AbstractOrder, 实现下单逻辑, 同时也可以调用父级Abstr

2023-11-20 17:21:49 563

原创 设计模式 实践案例

1.简单工厂 (一)https://preparedata.blog.csdn.net/article/details/132878013

2023-11-20 16:34:51 502

原创 DDoS攻击、CC攻击

DDoS攻击、CC攻击

2023-10-23 11:44:43 479

原创 Hyper-V 虚拟机CentOS配置网络(三)

Hyper-V 虚拟机CentOS配置网络

2023-09-18 16:16:07 1658

原创 Hyper-V 安装 CentOS (二)

Hyper-V 安装 CentOS

2023-09-14 17:11:44 1129

原创 下载CentOS ISO镜像 (一)

因为我们需要使用Hyper-V安装,所以选择**核心在于 CentOS项目已将重点。

2023-09-14 16:11:17 742

原创 CentOS 搭建k8s

Centos 搭建k8s。

2023-09-14 15:11:47 736

原创 HTTP RESTFul RPC

RPC的实现可以基于TCP协议,也可以基于HTTP协议。在基于TCP协议的情况下,服务的调用方和提供方需要建立Socket连接,然后调用方通过Socket将需要调用的接口名称、方法名称和参数序列化后传递给提供方。http是TCP的上层协议。

2023-09-12 16:01:48 1228

原创 spring cloud、gradle、父子项目、微服务框架搭建---cloud gateway(十)

spring cloud、gradle、父子项目、微服务框架搭建---cloud gateway

2023-09-08 15:56:46 998

原创 spring cloud、gradle、父子项目、微服务框架搭建---spring secuity oauth2、mysql 授权(九)

spring secuity oauth2 + mysql 授权

2023-08-29 15:08:56 817

原创 spring自定义线程池 逻辑 配置 ThreadPoolTaskExecutor corePoolSize maxPoolSize queueCapacity rejectedExecutionHa

spring自定义线程池 逻辑 配置 ThreadPoolTaskExecutor corePoolSize maxPoolSize queueCapacity rejectedExecutionHandler

2023-07-05 09:59:02 2941

原创 Java 自定义注解, 以及@interface @Target @Retention @Around @Before @After ProceedingJoinPoint JoinPoint 等用法

Java 自定义注解, 以及@interface @Target @Retention @Around @Before @After ProceedingJoinPoint JoinPoint 等用法

2023-06-26 15:33:12 1535

原创 RabbitMQ 管理端页面中 批量删除exchanges、queues

RabbitMQ 管理端页面中 批量删除exchanges、queues

2023-05-12 15:53:51 1461

原创 Throwable、Error、Exception 运行时异常、非运行时异常

Throwable、Error、Exception 运行时、非运行时

2023-05-06 17:22:39 1138

原创 mysql mybaits的update语句执行, 自定义返回值, 借助变量和<selectKey>

mysql、mybaits的update语句执行, 自定义返回值, 借助变量、

2023-04-19 11:32:15 1371

原创 JAVA 使用@Async、Future、AsyncResult处理异步返回结果, 类似C# Task await功能

JAVA 使用@Async、Future、AsyncResult处理异步返回结果, 类似C# Task await功能

2023-04-03 10:34:47 2767

原创 spring cloud、gradle、父子项目、微服务框架搭建---配置apollo(八)

spring cloud、gradle、父子项目、微服务框架搭建---配置apollo,部署apollo,apollo应用

2023-02-08 15:14:38 845

原创 一台服务器 部署多环境的 apollo

一台服务器 部署多环境的apollo

2023-02-07 11:37:04 1292

原创 分布式部署 apollo

分布式部署 apollo

2023-02-07 11:17:25 1074

原创 spring cloud、gradle、父子项目、微服务框架搭建---rabbitMQ延时队列(七)

spring cloud、gradle、父子项目、微服务框架搭建---rabbitMQ延时队列

2023-01-12 14:57:33 801

原创 spring cloud、gradle、父子项目、微服务框架搭建---配置spring-cloud-stream,rabbitMQ(六)

配置spring-cloud-stream,rabbitMQ

2023-01-11 16:52:39 615

原创 spring cloud、gradle、父子项目、微服务框架搭建---配置Redis,引入StringRedisTemplate(五)

spring cloud、gradle、父子项目、微服务框架搭建---配置Redis,引入StringRedisTemplate

2023-01-09 11:44:56 730

c# 生成PDF 输出到浏览器

c# 生成PDF 输出到浏览器

2017-03-15

.net 多文件上传

.net 多文件上传,使用到 jquery.uploadify,浏览器需要允许加载flash

2017-11-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除