自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis的持久化机制、过期策略

1. Redis持久化很多时候我们需要把内存中的数据持久化到磁盘中,大部分原因在于重启机器或机器故障数据恢复 。reids支持两种不同的序列化操作。Redis 的⼀种持久化⽅式叫快照(snapshotting,RDB),另⼀种⽅式是只追加文件(append-only file, AOF)RDB(snapshotting)持久化RDB就是在指定时间间隔内,将内存中的数据集快照写入磁盘。redis重启时是将快照文件直接读取到内存中,来恢复数据。优点:RDB文件紧凑,全量备份,非常适合于备份和

2022-01-24 15:44:03 897

原创 Redis常用的数据结构及使用场景

Redis** 常⻅数据结构以及使⽤场景1 string**介绍:**最简单的类型,就是普通的set和get,做简单的kv缓存常⽤命令:set,get,strlen,exists,dect,incr,setex 等等。**应⽤场景:**⼀般常⽤在需要计数的场景,⽐如⽤户的访问次数、热点⽂章的点赞转发数量等。set key1 haha #设置keyget key1 #获取keyexists key1 #是否存在strlen key1 #获取长度del

2022-01-24 15:41:14 1762 1

原创 JVM--垃圾回收算法

垃圾收集算法1 标记-清除算法标记清除算法是最常见的垃圾收集算法。当堆空间被耗尽的时候,就会停止整个程序(STW),进行两项操作。第一是标记,第二是清除标记: 从根节点开始遍历,标记所有被引用的对象清除: 从堆内存中从头到尾进行遍历,如果发现没有被标记的对象就进行回收。缺点: 1.效率不高 2. 这种方式清理出来的空间不连续,会产生内存碎片2 复制算法复制算法的高效性,是建立在存货对象少,垃圾对象多的的前提下。显然比较适合新生代,不适合老年代。过程: 将存活的内存空间分为两块,每次

2022-01-24 15:38:56 204

原创 Java多线程--ThreadPoolExecutor线程池

线程池线程池: 3大方法、7大参数、4种拒绝策略3.10.1 Executors 工具类 // 创建单个线程的线程池 ExecutorService executorService = Executors.newSingleThreadExecutor(); // 创建一个固定大小的线程池 ExecutorService executorService1 = Executors.newFixedThreadPool(5);

2022-01-24 15:36:57 221

原创 深拷贝VS浅拷贝

深拷贝与浅拷贝浅拷贝浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精准拷贝。 如果属性是基本数据类型,拷贝的就是基本类型的值;如果属性是运用类型(内存地址),拷贝的就是内存地址,因此如果其中一个对象修改了这个地址,就会影响另一个对象。@Data@AllArgsConstructorpublic class Person implements Cloneable { private int age; private String name;

2022-01-24 15:30:50 144

原创 23种设计模式--原型模式

2. 原型模式2.1 概述原型模式简单来说就是 主要用于对象的复制 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象原型模式实际上就是实现Cloneable接口,重写clone()方法。使用场景:原型模式优点:java自带的原型模式基于内存二进制流的复制,在性能上比直接new一个更快可以使用克隆模式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的过程。原型模式缺点:需要为每个类都配置一个clone方法clone方法位于类的内部,

2022-01-24 15:29:48 165

原创 23种设计模式-- 单例模式

1. 单例模式简而言之就是为了节省内存资源,要求某些类只能创建一个实例1.1 概述单例模式的3个特点:只能有一个实例单例对象必须由单例类自行创建单例类对外提供一个获取该实例的方法单例模式的应用场景:频繁创建的一些类,使用单例降低资源消耗,减少GC某些需要频繁实例化,而创建的对象又频繁销毁的资源,如多线程的线程池,网络连接池等1.2 代码实现Singleton有两种实现方式 饿汉式、懒汉式1.2.1 饿汉式该模式的特点就是类在加载的时候就创建一个实例,保证在调用gitI

2022-01-24 15:28:14 245

原创 微服务链路追踪之 zipkin+sleuth

zipkin+sleuth微服务链路追踪:跟踪一个用户请求的过程,捕获这些追踪数据,就能构建微服务的整个调用链的视图。特点说明提供链路追踪通过sleuth可以很清楚的看出一个请求经过了哪些服务, 可以方便的理清服务局的调用关系性能分析通过sleuth可以很方便的看出每个采集请求的耗时, 分析出哪些服务调用比较耗时,当服务调用的耗时 随着请求量的增大而增大时,也可以对服务的扩容提 供一定的提醒作用数据分析 优化链路对于频繁地调用一个服务,或者并行地调用等, 可以针

2022-01-19 09:26:18 162

原创 Centos 配置yum的源地址

安装wgetyum install -y wget备份/etc/yum.repos.d/CentOS-Base.repo文件cd /etc/yum.repos.d/mv CentOS-Base.repo CentOS-Base.repo.back下载阿里云的Centos-6.repo文件wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo重新加载yumyum clean allyum.

2022-01-17 10:23:39 1086

原创 GitLab安装(基于Docker)

1. gitlab环境准备1.1 拉取镜像docker pull gitlab/gitlab-ce:12.10.0-ce.01.2 准备挂载目录mkdir -p /mydata/gitlab/config mkdir -p /mydata/gitlab/logs mkdir -p /mydata/gitlab/data 1.3 运行镜像docker run --detach \ --restart=always \ --hostname 172.16.25.

2022-01-17 10:20:37 579

原创 Docker安装Sentinel

sentinel1. 拉取镜像docker pull bladex/sentinel-dashboard:1.8.02.运行镜像docker run --restart=always \--name sentinel \-d -p 8858:8858 -d bladex/sentinel-dashboard:1.8.0-d 后台运行-p 端口映射–restart=always 表示自启3.安装成功账户密码默认都是 sentinel...

2022-01-14 09:16:30 417

原创 RabbitMQ集群模式的安装(基于Docker)

rabbitmq1. 集群模式RabbitMQ 有三种模式:单机模式,普通集群模式,镜像集群模式。单机模式即单独运行一个 rabbitmq 实例,而集群模式需要创建多个 rabbitmq实例。1.1 普通集群模式默认的集群模式。需要创建多个 RabbitMQ 节点。但对于 Queue 和消息来说,只存在于其中一个节点,其他节点仅同步元数据,即队列的结构信息。1.2 镜像集群模式把队列做成镜像队列,让各队列存在于多个节点中,属于 RabbitMQ 的高可用性方案。镜像模式和普通模式的不同在于

2022-01-14 09:13:40 1026

原创 docker环境下redis单节点安装

redis安装1. 获取 redis 镜像##默认为最新版docker pull redis## 开放防火墙firewall-cmd --zone=public --add-port=6379/tcp --permanentfirewall-cmd --reload2. 从官网获取 redis.conf 配置文件# 创建redis配置文件挂载目录 conf为配置文件 data为数据mkdir -p /mydata/redis/confmkdir -p /mydata/redis/da

2022-01-11 13:51:52 464

原创 docker环境下nacos的集群安装(持久化到mysql)

docker环境下 nacos集群安装(三节点,配置持久化到mysql)

2022-01-11 13:47:50 573

原创 java集合总结

集合框架知识体系结构图集合容器主要包括collection和Map两种,Collection存储着对象的集合,而Map存储着键值对的映射表CollectionListArrayListArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许存Null元素,底层通过 数组实现(Object数组)。为追求效率,ArrayList没有实现同步(synchronized),如果需要多个线程并发访问,用户可以手动同步,也可使用Vector替代。数组结构

2021-12-24 11:09:40 382

原创 java之彻底搞懂并发编程、juc

`## 并发编程1. 什么是jucjava.util.concurrent在并发编程中使用的工具类2. 线程基础2.1 进程和线程进程一个程序,QQ.exe一个进程往往可以包含多个线程java有多个线程? 2个 main GC线程比如安全管家是一个进程,那么杀毒、垃圾清理都是一个线程2.2 并发和并行Erlang 之父 Joe Armstrong 用一张5岁小孩都能看懂的图解释了并发与并行的区别并发是两个队列交替使用一台咖啡机并行是两个队列同时使用两台咖

2021-12-08 09:56:09 411

原创 rabbitmq消息队列连环炮

消息队列使用消息队列的优缺点?好处:通过异步处理提高系统性能削峰/限流降低系统耦合性坏处:系统可用性降低系统复杂度提高一致性问题Kafka、ActiveMq、RabbitMq、RocketMq区别?特性ActiveMQRabbitMQRocketMQKafka单机吞吐量万级,比 RocketMQ、Kafka 低一个数量级同 ActiveMQ10 万级,支撑高吞吐10 万级,高吞吐,一般配合大数据类的系统来进行实时数据计算、日志采集等场景t

2021-11-30 09:34:48 1697

原创 深入理解JVM(耗时一周吐血整理)--上

1. jvm与java体系结构1.1 Java代码执行流程2. 类加载子系统2.1 内存结构Class文件类加载子系统运行时数据区方法区堆程序计数器虚拟机栈本地方法栈执行引擎本地方法接口本地方法库2.2 类的加载过程加载阶段.class加载链接阶段验证目的为了确保class文件的字节流包含信息符合当前虚拟机要求,保证正确性。四种验证: 文件格式验证、元数据验证、字节码验证、符号引用验证

2021-11-19 14:44:38 912

原创 mysql面试题(拿捏面试官)

基础什么是DML、DDL、DCL?DQL数据查询语言 DQL基本结构是由select,from,where子句组成的查询块DML数据操纵语言: 就是我们经常使用到的SELECT、UPDATE、INSERT、DELETE。主要用来对数据库的数据进行一些操作。DDL数据库定义语言: 其实就是我们在创建表的时候用到的一些sql,比如说create、alter等。DDL主要是用在定义或者改变表的结构,数据类型,表之间的链接和约束等初始化工作上。DCL数据库控制语言: 是用来设置或者更改数据库用户或

2021-09-01 16:21:54 287

空空如也

空空如也

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

TA关注的人

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