Docker 命令
Docker 命令创建redis1docker run --restart=always -p 6379:6379 --name myredis -d redis:latest --requirepass Nruonan996 创建rabbitmq1docker run -id --name=rabbitmq -v rabbitmq-home:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=xzn -e RABBITMQ_DEFAULT_PASS=Nruonan996 rabbitmq:management 创建minio1234567docker run -p 9000:9000 -p 9090:9090 --name minio \ -d --restart=always \ -e "MINIO_ACCESS_KEY=minio" \ -e "MINIO_SECRET_KEY=feiwu996" \ ...
jvm
JVM引言定义Java Virtual Machine - java 程序的运行环境 (java 二进制节码的运行环境) 好处 一次编写,到处运行 自动内存管理,垃圾回收功能 数组下标越界检查 多态 比较 内存结构1.程序计数器1.1 定义程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。(简单来说, 记住下一条jvm指令的执行地址) 另外,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。 1.2 作用 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。 在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。 ⚠️ 注意:程序计数器是唯一一个不会出现 OutOfMemoryError...
Cloud
CAP原则CAP 原则又称CAP定理,指的是在一个分布式系统中,存在Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),三者不可同时保证,最多只能保证其中的两者。 一致性(C):在分布式系统中的所有数据备份,在同一时刻都是同样的值(所有的节点无论何时访问都能拿到最新的值) 可用性(A):系统中非故障节点收到的每个请求都必须得到响应(比如我们之前使用的服务降级和熔断,其实就是一种维持可用性的措施,虽然服务返回的是没有什么意义的数据,但是不至于用户的请求会被服务器忽略) 分区容错性(P):一个分布式系统里面,节点之间组成的网络本来应该是连通的,然而可能因为一些故障(比如网络丢包等,这是很难避免的),使得有些节点之间不连通了,整个网络就分成了几块区域,数据就散布在了这些不连通的区域中(这样就可能出现某些被分区节点存放的数据访问失败,我们需要来容忍这些不可靠的情况) AC...
Java八股
Java基础1.Java语言有哪些特点? 简单易学; 面向对象(封装,继承,多态); 平台无关性( Java 虚拟机实现平台无关性); 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持); 可靠性(具备异常处理和自动内存管理机制); 安全性(Java 语言本身的设计就提供了多重安全防护机制如访问权限修饰符、限制程序直接访问操作系统资源); 高效性(通过 Just In Time 编译器等技术的优化,Java 语言的运行效率还是非常不错的); 支持网络编程并且很方便; 2.JVM、JDK 和 JRE 有什么区别?JVM:Java Virtual Machine,Java 虚拟机,Java 程序运行在 Java 虚拟机上。针对不同系统的实现(Windows,Linux,macOS)不同的 JVM,因此 Java 语言可以实现跨平台。 JRE: Java 运⾏时环境。它是运⾏已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,Java...
资料网站
主页 | 二哥的Java进阶之路 (javabetter.cn) Java 面试指南 | JavaGuide 小林coding (xiaolincoding.com) NextChat (gptapi.us) (一)JVM成神路之初识虚拟机 - 探寻Java虚拟机的前世今生之秘 - 掘金 (juejin.cn) 主页 | Java学习&面试指南-程序员大彬 (topjavaer.cn) | Java 全栈知识体系 (pdai.tech)
Ts
TS安装命令起步安装 npm install typescript -g 1.需转换JSTS文件转换JS tsc 文件名.tsJS文件运行 node 文件名.js 2.可以直接运行TS,不用转换JSTS库 npm install ts-node -g生成package.json npm init -y生成package-lock.json npm i @types/node -D 基础类型1.字符串类型字符串是使用string定义的 12345let a: string = '123'//普通声明//也可以使用es6的字符串模板let str: string = `dddd${a}` 2.数字类型支持十六进制、十进制、八进制和二进制; 1234567let notANumber: number = NaN;//Nanlet num: number = 123;//普通数字let infinityNumber: number = Infinity;//无穷大let decimal: number = 6;//十进制let...
Redis
Redis高级篇持久化RDBRDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。 快照文件称为RDB文件,默认是保存在当前运行目录 RDB 创建快照时会阻塞主线程吗?Redis 提供了两个命令来生成 RDB 快照文件: save : 同步保存操作,会阻塞 Redis 主线程; bgsave : fork 出一个子进程,子进程执行,不会阻塞 Redis 主线程,默认选项。 这里说 Redis 主线程而不是主进程的主要是因为 Redis 启动之后主要是通过单线程的方式完成主要的工作。如果你想将其描述为 Redis 主进程,也没毛病 Redis 还可以通过配置文件的选项来实现每隔一段时间自动执行一次 bgsave 命令,默认会提供以下配置: 123save 900 1save 300 10save 60 10000 别看选项名叫 save,实际上执行的是 bgsave 命令,也就是会创建子进程来生成 RDB...
mysql
mysql进阶存储引擎 连接层 最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。 服务层 第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。 引擎层 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过AP和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。 存储层 主要是将数据存储在文件系统之上,并完成与存储引擎的交互。 简介存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的,所以存储引擎也可以被称为表引擎。mysql5.0以后默认存储引擎是InnoDB。 12345678-- 查询建表语句show create table account;-- 建表时指定存储引擎CREATE TABLE 表名( ...) ENGINE=INNODB;--...