自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 一、Redis数据结构与编码(只包含五大基础数据结构)

Redis数据类型与编码机制详解:本文介绍了Redis的字符串和列表两种基本数据类型及其底层实现。字符串采用SDS结构,分为EMBSTR(短字符串优化)、RAW和INT三种编码方式,支持高效操作与内存节省。列表类型使用ZIPLIST紧凑存储,详细解析了其内存布局、节点结构和字节序处理,并探讨了级联更新问题。此外,文章以分布式ID生成器为例,展示了Redis在实践中的应用场景及其高性能、高可用特性。通过分析底层编码机制,揭示了Redis如何平衡内存效率与操作性能。

2025-06-04 09:06:36 879

原创 0、简介 及 Linux(Docker)安装Redis

本文介绍了Redis的基础知识与Docker安装方法。Redis是一款基于内存的键值型NoSQL数据库,支持多种数据结构,可用作缓存、排行榜、消息队列等场景。其高性能架构包括网络层的事件驱动模型、内存管理和持久化层等。文章详细解析了Redis的数据存储原理和命令执行过程,并重点提供了使用Docker安装Redis的完整步骤:从镜像拉取、重命名到配置文件创建与编辑,涵盖端口设置、持久化配置等核心参数说明。最后还附带了主要配置项的详细解释,为Redis的部署和使用提供了实用指南。

2025-06-03 09:33:23 700

原创 JVM:G1、ZGC、Shenandoah

G1开创了收集器面向局部收集的思路和基于Region的内存布局形式。是为了取代CMS收集器而出现的,使用参数 -XX:+UseConcMarkSweepGC来开启CMS收集器会收到CMS会被废弃的警告。为了实现职责分离的设计原则,在JDK10规划功能目标时提出了“统一垃圾收集器接口”,将内存回收的“行为”与“实现”进行分离。“停顿预测模型”的收集器:能够支持指定在一个长度为M毫秒的时间片段内,消耗在垃圾收集上的时间大概率不超过N毫秒。这几乎已经是实时Java(RTSJ)中软实时垃圾收集器的特征了。

2025-06-01 22:32:14 684

原创 观察者模式——公众号

摘要:观察者模式是一种行为型设计模式,定义了一对多的对象依赖关系。当被观察者(Subject)状态改变时,会自动通知所有观察者(Observer)。文中以公众号订阅为例,展示了该模式的实现:OfficialAccount作为被观察者维护观察者列表,Customer作为观察者接收更新通知。该模式适用于GUI事件处理、实时数据推送等场景,实现了松耦合的对象间通信。关键组件包括被观察者接口、具体被观察者、观察者接口和具体观察者。

2025-06-01 18:48:45 208

原创 Spring-Mail+AOP实现日报与异常邮件发送(QQ邮箱)

本文介绍了基于Spring框架实现服务器异常监控和日报邮件通知的方案。通过AOP切面编程结合邮件服务,系统可自动发送每日报告并在异常发生时及时告警。方案包含四个核心模块:1)配置邮件服务参数(SMTP服务器、授权码等);2)定时任务组件实现日报发送;3)邮件服务封装支持HTML格式和重试机制;4)AOP切面捕获未处理异常并发送告警邮件。文中提供了关键代码示例,包括依赖配置、定时任务注解使用、邮件发送服务实现以及异常切面处理。该方案可作为基础框架,开发者可根据实际需求进行功能扩展和优化。

2025-05-26 20:20:39 371

原创 无法优先加载bootstrap.yaml文件

原因:该版本SpringCloud不再默认优先加载bootstrap.yml文件,解决办法:添加spring-cloud-starter-bootstrap依赖。

2024-12-10 14:43:35 178

原创 微服务Gateway 报错:Service Unavailable

【代码】微服务Gateway 报错:Service Unavailable。

2024-12-10 14:26:28 202

原创 报错java.net.UnknownHostException: xxx-Service

配置RestTemplate。

2024-12-10 10:39:24 251

原创 简单工厂模式(计算器)

进行封装之后我们发现如果需要增加其他计算时,需要在原有代码的基础上进行修改,也就是说只是进行简单修改就需要其他代码参与编译,同时增加代码时也可能会误修改其他代码。这样做之后,想要再添加其他操作只需要增加子类即可,但是此时又会出现另一个问题,我怎么知道该调用哪一个函数呢?不能每一个都实例化吧。基本的命名规范,类型正确以及错误判断。可维护、可扩展、可复用、灵活性好。这时就需要简单工厂模式了。

2024-11-26 14:59:10 222

原创 设计模式第0章-面向对象

比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于图形这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念。抽象类通常代表一个抽象概念,它提供一个继承出发点,当设计一个新的抽象类时,一定是用来继承的,所以,在一个以继承关系形成的等级结构里面,叶节点应当是具体类,而树枝节点应当是抽象类。接口不能实例化,不能有构造方法和字段,不能有修饰符,不能声明为虚拟的或静态的,实现接口的类就必须要实现接口中的所有方法和属性。

2024-11-25 14:24:49 682

原创 装饰模式(Decorator) 之 蜜雪冰城

ss 装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。

2024-11-25 14:11:31 228

原创 Linux(快速使用一)

更改设置---NAT模式---子网IP(需要自行查看被分配的地址192.168.110.0,最后一位为0)、子网掩码不动。地址:192.168.110.100(前三段与VMware中的设置一样,最后一段不能为0、255)R 进入替换模式(开始编辑之后,会一个一个替换掉光标之后的字符,未编辑到的不替换)Linux运行相关:boot、dev、lib、lib64、proc、sys。r:读(read) w:写(write) x:执行(execute)Linux:设置 --> 网络 --> 有线 --> 设置。

2024-11-12 17:07:51 856

原创 RabbitMQ

另外 : 设置定时任务,定期查询异步等待的消息。这样即使MQ通知失败也可以完成事务状态。# 生产者发送消息时,消费者不会立即受到消息,而是在指定时间之后才收到消息。设想交易支付服务时,扣款完成->支付状态为已支付->订单状态却是未完成。MQ就相当于异步调用中的Broker。以下为使用Java代码创建队列和交换机。:保证消息发送完成之后至少被消费一次。访问RabbitMQ的图形化界面。完成上述步骤之后,即可使用。· Fanout : 广播。· Direct : 定向。· Topic : 话题。

2024-11-12 17:05:07 179

原创 JVM:垃圾收集器与内存分配策略(无G1与ZGC)

全局性的引用,如常量或类静态属性执行上下文,如栈帧中的本地变量表现在Java应用越来越大,光是方法区就有数百上千兆,里面的类、常量更是恒河沙数,若要逐个检查以这里为起源的引用耗费的时间将会很多。迄今为止,所有收集器在根节点枚举这一步骤时都是必须暂停用户线程的。

2024-11-10 19:37:59 626

原创 JVM:第二章:Java 内存区域与内存溢出异常

在JDK1.4中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用,Native函数库直接分配堆外内存,然后通过一个存储在Java堆中的DirectByteBuffer对象作为这块内存的引用进行操作。这样避免了在Java堆中和Native中来回复制数据,可以在一些场景中显著提升性能。直接内存区域规定的异常。

2024-09-20 17:12:54 797 1

原创 JVM--Java虚拟机:1.Java技术体系(周志明著 第三版)

我们把Java程序设计语言、Java虚拟机、Java类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。但广义上来说,Kotlin、Clojure、JRuby、Groovy等运行于Java虚拟机上的编程语言以及相关的程序都属于Java技术体系的一员。

2024-09-20 17:05:23 471

空空如也

空空如也

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

TA关注的人

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