- 博客(18)
- 收藏
- 关注
原创 黑马商城 | RabbitMQ
本文以黑马商城余额支付场景为例,对比同步调用与异步调用的优劣,引出消息队列(MQ)在解耦、性能提升和故障隔离方面的优势。重点介绍RabbitMQ的核心架构与AMQP协议,通过Spring AMQP实现简单消息发送与接收,并演示Work Queue任务模型,展示多消费者协同处理消息的能力。最后分析主流MQ选型差异,突出RabbitMQ在可靠性与易用性上的优势。
2026-09-27 22:04:11
269
原创 黑马MySQL | 进阶篇
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型示例:在创建表时,指定存储引擎CREATE TABLE 表名(字段1 字段1类型[COMMENT 字段1注释],...字段n 字段n类型 [COMMENT 字段n注释])ENGINE=INNODB [COMMENT 表注释];查看当前数据库支持的存储引擎索引(index)是帮助MySQL高效获取数据的有序数据结构。
2026-08-24 00:22:40
217
原创 黑马Spring Security OAuth2.0
本文介绍了Spring Security OAuth2.0中的核心概念,包括认证、会话和授权机制。认证是验证用户身份合法性的过程,常见方式包括用户名密码、二维码等。会话机制分为基于session和基于token两种方式,分别通过服务端存储会话数据或发放令牌来保持用户状态。授权则是在认证基础上对资源访问权限进行细粒度控制,涉及主体、资源、权限三个关键要素。文章详细阐述了基于角色(RBAC)和基于资源的访问控制模型,比较了两种方式的优缺点,指出基于资源的控制具有更好的扩展性。最后简要说明了基于Session认证
2026-08-03 14:30:20
206
原创 黑马SpringCloud | 微服务-面试篇
本文介绍了分布式系统中的CAP定理和BASE理论,以及Seata AT模式下的分布式事务处理机制。CAP定理指出分布式系统无法同时满足一致性、可用性和分区容错性,通常需要牺牲其中一项。BASE理论则提出基本可用、软状态和最终一致性作为解决方案。在Seata的AT模式中,通过全局锁和快照双镜像机制解决脏写问题,确保事务隔离性。全局锁由事务协调者TC管理,防止并发事务冲突;快照双镜像则用于异常检测和数据恢复。文章还分析了AT模式与XA模式的区别,以及极端情况下可能出现的问题和处理方式。
2026-05-21 21:43:01
368
1
原创 黑马商城 | Elasticsearch
本文介绍了Elasticsearch的DSL语法操作,主要包括: 分词器操作:演示了使用ik_max_word和ik_smart分词器对文本进行分析。 索引库操作: 创建索引库并设置mapping映射 查询、删除索引库 添加新字段到已有索引库 提供了Java客户端连接和操作索引库的代码示例 文档操作: 新增、查询、删除文档 两种修改文档方式:全量修改和增量修改 对应的Java客户端实现代码 文章还包含了完整的Java客户端操作示例,包括创建索引库、判断索引库是否存在、删除索引库以及文档的增删改查操作。
2026-05-17 22:34:50
384
原创 黑马点评 | Redis笔记-原理篇
Redis核心数据结构解析 动态字符串SDS Redis采用SDS替代C语言原生字符串,解决了长度计算、二进制安全和修改限制等问题。SDS结构包含长度(len)、容量(alloc)和标志位(flags),支持动态扩容和惰性空间释放,性能优势显著:O(1)复杂度获取长度、减少内存分配次数。 IntSet实现 Redis集合的一种紧凑实现,基于有序整数数组。核心特性包括: 动态编码:自动升级16/32/64位存储格式 升级机制:插入超出当前编码范围的数值时,自动扩容并迁移数据 有序存储:二分查找优化查询效率
2026-04-14 16:24:53
600
原创 黑马点评 | Redis笔记-高级篇
Redis高级应用与优化 本文介绍了Redis的高级应用场景和优化策略,主要包括: 单节点Redis的问题与解决方案:针对数据丢失、并发能力、故障恢复和存储能力等问题,提出了持久化、主从集群、哨兵机制和分片集群等解决方案。 持久化机制:详细讲解了RDB和AOF两种持久化方式的工作原理、配置方法和优缺点比较,建议根据业务需求选择合适的方式或结合使用。 主从架构:阐述了主从集群的搭建方法、数据同步原理(全量同步和增量同步)以及如何判断从节点是否为第一次连接。 这些高级特性使Redis能够应对高并发、大数据量场景
2026-04-14 16:02:37
519
1
原创 黑马点评 | Redis笔记-实战篇
本文介绍了基于Session和Redis实现的短信登录功能。首先展示了传统Session方式的实现,包括验证码生成与校验、用户信息存储等核心逻辑,但指出其在集群环境下存在Session共享问题。随后提出Redis解决方案,详细描述了将用户信息转为Hash结构存储到Redis的过程,并设置Token有效期。通过LoginInterceptor拦截器实现Token验证和用户信息获取,解决了分布式系统的会话共享问题。两种方案均包含完整的代码实现,重点突出了Redis在分布式环境下的优势。
2026-03-25 11:39:37
479
原创 黑马点评 | Redis笔记-基础篇
Redis是一款基于内存的键值型NoSQL数据库,具有高性能、多数据结构支持等特性。文章首先对比了SQL与NoSQL的区别,重点介绍了Redis的核心特性:支持String、Hash、List、Set、SortedSet等多种数据结构,单线程原子性操作,低延迟以及集群支持。详细讲解了各数据结构的常用命令,如String的SET/GET、Hash的HSET/HGET、List的LPUSH/LPOP等。特别说明了SortedSet通过score排序的特性适合实现排行榜功能。此外还介绍了Redis的键命名规范和通
2026-03-24 23:03:35
426
原创 PTA 7-12 sdut-Collection-sort--C~K的班级(II)
本文介绍了两种Java实现方法,用于处理学生名单去重问题。第一种使用HashMap存储学生信息(以学号为键),自动去除重复项,然后按学号排序输出。第二种采用Stream API的distinct()方法去重(需重写hashCode和equals方法),同样按学号排序后输出。两种方法都能有效解决名单重复问题,最终输出不重复的学生人数及其按学号排序的详细信息。代码示例展示了完整的实现过程,包括学生类定义和主程序逻辑。
2025-12-09 16:58:05
221
原创 PTA 7-5 jmu-Java-m06 根据姓名以及电话号码查找联系人
本文实现了一个通讯录管理系统,包含Person类存储联系人信息(ID、姓名、电话、地址),Utils类生成随机联系人数据,以及Main类实现查询功能。系统将20万个联系人按姓名分类存储在Map中,支持通过姓名和电话号码查询。查询时,若找到匹配的联系人则输出其信息,否则提示"Not found!"。程序最后输出Map中不同姓名的数量。
2025-12-02 17:10:40
605
原创 PTA 求二叉树高度(递归与非递归实现)
要求函数返回给定二叉树BT的高度值。1、递归实现只适合处理规模不大的树。2、非递归实现则可以处理大规模数据,但是在这一段代码中定义了一个last的变量来存储上一个处理的节点,使得逻辑变得更复杂。可以在栈中增加一个数组来存储各节点的高度并随弹栈更新。
2025-03-25 23:41:23
1104
原创 PTA 反向输出整数序列(动态分配栈)
栈的定义如下://指向栈的元素存储空间int top;// 栈顶// 当前已分配空间,以元素为单位写出 createStack,push, pop,top,empty,destroy函数的定义。函数声明如下://初始化一个空栈。空栈拥有16个元素的空间,栈顶值为 -1//把 x 入栈//返回当前栈顶元素的值//当前栈顶元素出栈//如果栈空,则返回 true,否则返回 false//清空分配给栈的存储空间。
2025-03-24 21:34:01
1767
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅