自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试必备:Java线程池解析

LinkedBlockingQueue(可设置容量队列)基于链表结构的阻塞队列,按FIFO排序任务,容量可以选择进行设置,不设置的话,将是一个无边界的阻塞队列,最大长度为Integer.MAX_VALUE,吞吐量通常要高于ArrayBlockingQuene;在使用线程池处理任务的时候,任务代码可能抛出RuntimeException,抛出异常后,线程池可能捕获它,也可能创建一个新的线程来代替异常的线程,我们可能无法感知任务出现了异常,因此我们需要考虑线程池异常情况。...

2022-07-29 21:39:40 366 2

原创 Java Bean 转 Map 的巨坑,注意了!!!

如使用fastjson,当属性为Long类型但数字小于Integer最大值时,反序列成Map之后,将变为Integer类型。(2)在某些场景下,Map的key并非和属性名完全对应,像是通过getset方法“推断”出来的属性名。JavaBean转Map的坑很多,最常见的就是类型丢失和属性名解析错误的问题。平时使用某些框架时,多写一些DEMO进行验证,多读源码,多调试,少趟坑。如果想严格和属性保持一致,可以使用反射获取属性名和属性值,加缓存机制提升解析的效率。...

2022-07-29 14:55:44 543

原创 零基础学Java(12)静态字段与静态方法

前面曾经多次提到过,由于每个类对象都可以修改公共字段,所以,最好不要有公共字段。,每个类只有一个这样的字段。而对于非静态的实例字段,每个对象都有自己的一个副本。例如,假设需要给每一个员工赋予唯一的标识码。类的静态方法不能访问id实例字段,因为它不能在对象上执行操作。最后,打印出下一个可用的员工标识码来展示静态方法。静态变量使用的比较少,但静态常量却很常用。类对象,则有1000个实例字段id,分别对应每一个对象。对象都有一个自己的id字段,但这个类的所有实例将共享一个。它属与类,而不属于任何单个的对象。...

2022-07-28 16:37:00 292

原创 JAVA多线程

基本概念在我们操作系统中运行的程序就是进程,比如播放器,游戏等等......一个进程可以有多个线程,如视频中同时可以听声音,看图像,看弹幕等等.......程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。但是进程则是执行程序的一次执行过程,他是一个动态的概念。是系统资源分配的单位通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位注意:很多多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器等等......很

2022-07-28 16:29:35 171

原创 Javaweb-JSP详解Toretto

request客户端向服务器发送请求,产生的数据,用户看完就没用了,比如新闻,用户看完就没用了,比如新闻用户看完一条新闻,那这条新闻就没用了session客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如购物车application客户端向服务器发送请求,产生的数据,一个用户用完了,其它用户还可能使用,比如聊天数据;其它的,就会被生成到_jspService()方法中在JSP中嵌入Java代码即可。注意JSP的注释不会在浏览器页面显示,HTML的会显示。...

2022-07-28 15:18:43 165

原创 面试题:Java中为什么只有值传递?

如果参数是引用类型,传递的就是实参所引用的对象在栈中地址值的拷贝,这里创建的副本是地址的拷贝。我们可以换个角度理解,如果我们把栈地址当成值,会创建栈地址副本(复制栈帧),栈地址最终并没有改变,改变的是堆内存中的值。虽然调用完函数后,str2变量值(堆中的数据)改变了,但是参数是引用类型,传递的实参是栈中地址值,这是我们关心的,拷贝的是栈中地址值,最终栈中地址值并没有改变。引用传递方法接收的是实际参数所引用的地址,不会创建副本,对形参的修改将影响到实参,即不创建副本,会影响原生对象。...

2022-07-28 14:22:10 115

原创 java基础之AQS

va开发中,我们的应用程序经常会使用多线程提高程序的运行效率,多线程情况下访问线程共享变量可能会带来并发问题,此时就需要并发锁解决并发问题。Java提供了两种类型的并发控制机制synchonrized关键字和AQS框架,二者各有优势,不过在加锁解锁场景比较灵活的情况下,我们往往会采用AQS框架来解决并发问题。本文会对Java中的AQS框架的结构和源码进行简单介绍。本文大多数内容参考了。......

2022-07-27 20:11:40 144

原创 Java中AES加密和解密的方法分享

/返回基本编码格式的密钥,如果此密钥不支持编码,则返回。kgen.init(128,newSecureRandom(password.getBytes()));System.out.println("解密后的内容"+newString(decrypt,"utf-8"));System.out.println("加密后的2进制密文"+newString(encrypt));System.out.println("加密后的2进制密文"+newString(byte2));...

2022-07-26 16:47:19 3089

原创 Java8日期时间(LocalDate、LocalTime、LocalDateTime)

Java中1.8之前有date类,date类到了1.8大部分的方法被弃而且date类如果不格式化可读性十分差,而simpledateformat方法中format和parse方法都是线程不安全的。Java1.8之后出现了localdate,localdatetime,localtime这些类,而这些类使用了final来修饰,使得这些类是不可变的,一旦实例化,值就固定了,有点类似于String类,所以这些类都是线程安全的。...

2022-07-26 15:50:42 3766

原创 Java 插入公式到PPT幻灯片

owerPoint幻灯片中可插入公式,用于在幻灯片放映时演示相关内容的论证、推算的依据,能有效地为演讲者提供论述的数据支撑。通过后端程序代码,我们可借助特定的工具来实现在幻灯片中的插入公式,本文,将对此作详细介绍。...

2022-07-26 15:40:13 196

原创 java面试题

​start()方法用于启动线程,run()方法用于执行线程的运行代码,run()可以反复调用,而start()方法只能被调用一次。sleep是线程中的方法,但是wait是Object中的方法,sleep方法不会释放lock,但是wait会释放,linklist双链表,对象存在独立的空间中,保存下一个连接的索引,但查询非常麻烦,从第一个索引开始擦寻。hash值主要是用来在散列存储结构中确定对象的存储地址的,提高对象的查询效率,如HashMap、其中模型层代表的是数据,...

2022-07-26 15:13:26 99

原创 [Java学习笔记] Java异常机制(也许是全网最独特视角)

一句话简单理解异常是程序运行中的一些异常或者错误。(纯字面意思)

2022-07-26 15:08:43 113

原创 Java 中的异常处理机制

异常是程序在运行过程中出现的程序异常事件,异常会中断正在执行的正常指令流。Java中的异常分为两大类Exception和Error。下面是Exception和Error的类定义Exception和Error都继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者被捕获(catch)。Exception和Error体现了Java平台设计者对不同异常情况的分类。内存溢出(OutOfMemoryError)...

2022-07-26 15:02:41 684

原创 强烈推荐!史上最有深度的Java学习视频,Mybatis、Javaweb、SSM框架项目

主讲课程为Mybatis框架。这门课程有两门前驱的课JavaSE和Javaweb,后继还有Spring框架和SpringMVC框架,微服务框架和互联网分布式技术。

2022-07-26 14:40:58 536

原创 零基础学Java(10)面向对象-使用LocalDate类完成日历设计 _

在我们完成这个日历设计前,需要了解Java中的预定义类LocalDate的一些用法。

2022-07-26 14:16:00 147

原创 使用JAVA CompletableFuture实现流水线化的并行处理,深度实践总结

好啦,关于JAVA中的使用,以及并行编程相关的内容呢就介绍到这里啦。看到这里,相信您应该有所收获吧?那么你的项目里有这种适合并行处理的场景吗?你在处理并行场景的时候是怎么做的呢?评论区一起讨论下吧~~本文中有提及执行时所使用的默认线程池是,早在JAVA7版本就已经被引入,但是很多人对不是很了解,实际项目中使用的也比较少。其实对的合理利用,可以让我们在面对某些多线程场景时会更加的从容高效。在后面的文章中,我会针对有关的内容进行专门的介绍与探讨,如果有兴趣,可以点个关注,及时获取后续的内容。https。...

2022-07-26 14:02:46 4014 4

原创 零基础学Java(11)自定义类

之前的例子中,我们已经编写了一些简单的类。但是,那些类都只包含一个简单的main方法。现在来学习如何编写复杂应用程序所需要的那种主力类。通常这些类没有main方法,却有自己的实例字段和实例方法。要想构建一个完整的程序,会结合使用多个类,其中只有一个类有main方法。//字段field1field2...//构造方法...//普通方法method1method2...}接下来将上面的伪代码填充完整name=n;}}}文件staff){...

2022-07-26 13:40:38 715

原创 常用的分布式事务解决方案

事务由一组操作构成,我们希望这组操作能够全部正确执行,如果这一组操作中的任意一个步骤发生错误,那么就需要回滚之前已经完成的操作。也就是同一个事务中的所有操作,要么全都正确执行,要么全都不要执行。说到事务,就不得不提一下事务著名的四大特性。原子性 原子性要求,事务是一个不可分割的执行单元,事务中的所有操作要么全都执行,要么全都不执行。一致性 一致性要求,事务在开始前和结束后,数据库的完整性约束没有被破坏。隔离性 事务的执行是相互独立的,它们不会相互干扰,一个事务不会看到另一个正在运行过程中的事务的数据。持久性

2022-06-23 19:47:50 469 1

原创 数据库面试题(开发者必看)

存储过程就像我们编程语言中的函数一样,封装了我们的代码(PLSQL、T-SQL)。存储过程的优点:存储过程的缺点:上面的文字我们肯定是看不懂的,也不愿意看下去的。接下来我就总结一下:视图是一种基于数据表的一种虚表有的时候,我们可能只关系一张数据表中的某些字段,而另外的一些人只关系同一张数据表的某些字段...那么把全部的字段都都显示给他们看,这是不合理的。我们应该做到:他们想看到什么样的数据,我们就给他们什么样的数据...一方面就能够让他们只关注自己的数据,另一方面,我们也保证数据表一些保密的数据不会泄露出来

2022-06-22 20:41:58 3293

原创 源码解析:面试必问的LinkedList,看这篇文章就够了

LinkedList 底层基于链表实现,增删不需要移动数据,所以效率很高。但是查询和修改数据的效率低,不能像数组那样根据下标快速的定位到数据,需要一个一个遍历数据。 是基于链表实现的结构,主要核心是 节点,源码如下:结构如下图所示:这是一个双链表的的结构,有 前置指针和 后置指针。还有首节点、尾结点、长度:添加数据LinkedList添加元素有两个方法:add(E e) 和 **add(int index,E e)**。add(E e) 是在链表的尾部添加数据add(int index,

2022-06-22 19:55:45 319

原创 Spring IoC有什么好处呢?

作者:Mingqi链接:https://www.zhihu.com/question/23277575/answer/169698662 要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle )。什么是依赖倒置原则?假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据底盘设计车身,最后根据车身设计好整个汽车。这里就出现了一个“依赖”关系:汽车依赖车身,车身依

2022-06-22 16:52:47 605

原创 可能是最漂亮的Spring事务管理详解

这部分内容比较重要,不论是对于工作还是面试,但是网上比较好的参考资料比较少。事务是逻辑上的一组操作,要么都执行,要么都不执行。相信大家应该都能背上面这句话了,下面我结合我们日常的真实开发来谈一谈。我们系统的每个业务方法可能包括了多个原子性的数据库操作,比如下面的 方法中就有两个原子性的数据库操作。这些原子性的数据库操作是有依赖的,它们要么都执行,要不就都不执行。另外,需要格外注意的是:事务能否生效数据库引擎是否支持事务是关键。比如常用的 MySQL 数据库默认使用支持事务的 引擎。但是,如果把数据库

2022-06-22 15:22:24 109

原创 面试官:“谈谈Spring中都用到了那些设计模式?”

JDK 中用到了那些设计模式?Spring 中用到了那些设计模式?这两个问题,在面试中比较常见。我在网上搜索了一下关于 Spring 中设计模式的讲解几乎都是千篇一律,而且大部分都年代久远。所以,花了几天时间自己总结了一下,由于我的个人能力有限,文中如有任何错误各位都可以指出。另外,文章篇幅有限,对于设计模式以及一些源码的解读我只是一笔带过,这篇文章的主要目的是回顾一下 Spring 中的常见的设计模式。Design Patterns(设计模式) 表示面向对象软件开发中最好的计算机编程实践。 Spring

2022-06-22 15:14:34 200

原创 一文吃透Spring Boot扩展之BeanFactoryPostProcessor

是Spring中一个相当重要的扩展点,扩展点就是能让我们在Spring容器以及Bean生命周期的各个阶段中可以进行修改扩展。, 翻译过来大致是Bean的工厂处理器,顾名思义,可以理解为它对Bean工厂中Bean定义()进行修改, 它的执行时机:BeanFactory标准初始化之后,所有的Bean定义已经被加载,但标准Bean的实例还没被创建(不包括类型)。该方法通常用于修改bean的定义,Bean的属性值等,甚至可以在此快速初始化Bean。而另外一个相关的扩展接口的,继承自,所有的Bean定义即将被加载,但

2022-06-22 14:52:40 294

原创 从-1开始实现一个中间件

别人都写从0开始实现xxx,我先从-1开始就显得更牛逼一些。今天,先开个头,来教大家怎么实现一个中间件。首先,我们新建一个多 module 的项目用于测试。项目包含两个模块,test-infra用户中间件模块的开发,demo用于测试。开发中间件项目创建 OK 了,接着开始开发一个最最最简单的中间件。在resources目录下创建META-INFA/spring.factories文件,用于自动装配,别问我啥是自动装配,然后配置一个自动装配类。实现 TestConfiguration,最简单的

2022-06-22 14:31:10 185

原创 一文入门 Spring Cloud Tencent

Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案。Spring Cloud Tencent 实现了 Spring Cloud 标准微服务 SPI,开发者可以基于 Spring Cloud Tencent 快速开发 Spring Cloud 微服务架构应用。Spring Cloud Tencent 的核心依托腾讯开源的一站式服务发现与治理平台 Polarismesh ,实现各种分布式微服务场景。Spring Cloud Tencent 提供的能力包括但不限于:正在上传…重新上传取消架

2022-06-22 14:15:10 175

原创 Java 基础常见知识点&面试题总结,2022 最新版

两者的主要区别在于解决问题的方式不同:另外,面向对象开发的程序一般更易维护、易复用、易扩展。相关 issue : 面向过程 :面向过程性能比面向对象高??new 运算符,new 创建对象实例(对象实例在堆内存中),对象引用指向对象实例(对象引用存放在栈内存中)。一个对象引用可以指向 0 个或 1 个对象(一根绳子可以不系气球,也可以系一个气球);一个对象可以有 n 个引用指向它(可以用 n 条绳子系住一个气球)。构造方法是一种特殊的方法,主要作用是完成对象的初始化工作。如果一个类没有声明构造方法,也可以执行

2022-06-21 20:10:07 53

原创 五种方式实现 Java 单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。是否多线程安全:是是否懒加载:否正如名字含义,饿汉需要直接创建实例。缺点: 类加载就初始化,浪费内存 优点: 没有加锁,执行效率高。还是线程安全的实例。懒汉单例,在类初始化不会创建实例,只有被调用时

2022-06-21 16:01:08 75

原创 42 张图带你揭秘后端技术都要学啥?

原创作者 | L的存在说到后端开发,难免会遇到各种所谓高大上的「关键词 」,对于我们应届生小白,难免会觉得比较陌生,因为在学校确实比较少遇见这些所谓高大上的东西,那么今天就带着学习的态度和大家分享这些看似可以装逼可以飞的带逼格的关键词吧。大纲当一个人或者几十个使用你的系统,哎呀我去,请求秒回,效果倍棒,于是乎简历砰砰写上却多么牛X,当面试官就会问你你这项目做了啥,测试过没,并发量如何,性能如何?你就…..当访问系统的用户越来越多,可是我们的系统资源有限,所以需要更多的 CPU 和内存去处理用户的计算请求,当

2022-06-21 14:56:14 1032 1

原创 一文搞明白分布式事务解决方案 , 真的 so easy..

分布式事务,咱们前边也聊过很多次了,网上其实也有不少文章在介绍分布式事务,不过里边都会涉及到不少专业名词,看的大家云里雾里,所以还是有一些小伙伴在微信上问我。那么今天,我就再来一篇文章,和大家捋一捋这个话题。以下的内容主要围绕阿里的 seata 来和大家解释。首先,来和大家解释一个名词,大家在看分布式事务相关资料的时候,经常会看到一个名词:反向补偿。啥是反向补偿呢?我举一个例子:假设我们现在有三个微服务分别是 A、B、C,现在在 A 服务中分别调用 B 和 C 服务,为了确保 B 和 C 同时成功或者同时失

2022-06-21 14:09:54 126

原创 分布式事务,原理简单,写起来全是坑

其实我觉得 seata 中的四种不同的分布式事务模式,学完 AT、TCC 以及 XA 就够了,Saga 不好玩,而且长事务本身就有很多问题,也不推荐使用。Seata 中的 XA 模式实际上是基于 MySQL 的 XA 两阶段提交发展出来的,所以学习 XA 模式,需要小伙伴们先理解 MySQL 中的 XA 是怎么一回事,把 MySQL 中的 XA 搞清楚了,再来学习 Seata 中的 XA 模式就容易的多了。我们先来稍微回顾一下两阶段提交。先来看下面一张图:这张图里涉及到三个概念:那么什么是两阶段(Two-P

2022-06-21 13:54:03 77

原创 简历写了会Kafka,面试官90%会让你讲讲acks参数对消息持久化的影响

(0)写在前面(1)如何保证宕机时数据不丢失?(2)多副本冗余的高可用机制(3)多副本之间数据如何同步?(4)ISR到底指的什么东西?(5)acks参数的含义?(6)最后的思考个人公众号:石杉的架构笔记(ID:shishan100)面试大厂时,一旦简历上写了Kafka,几乎必然会被问到一个问题:说说acks参数对消息持久化的影响?这个acks参数在kafka的使用中,是非常核心以及关键的一个参数,决定了很多东西。所以无论是为了面试还是实际项目使用,大家都值得看一下这篇文章对Kafka的acks参数的分析,以

2022-06-20 19:48:24 269

原创 线程池7个参数拿捏死死的,完爆面试官

关于Exectors内部提供了很多快捷创建线程的方式。这些方法内部都是依赖。所以线程池的学习就是。线程池正常情况下最好用线程工厂来创建线程。他的作用是用来处理每一次提交过来的任务;可以解决两个问题另外在内部提供了很多参数及可扩展的地方。同时他也内置了很多工厂执行器方法供我们快速使用,比如说:无限制处理任务。 还有:固定线程数量;这些内置的线程工厂基本上能满足我们日常的需求。如果内置的不满足我们还可以针对内部的属性进行个性化设置 我们已来分析下。首先它需要一个整数型参数。 而实际上内部是

2022-06-20 19:44:40 71

原创 一文带你深入理解SpringBean生命周期之PostConstruct、PreDestroy详解

想必大家在项目中都用过这个注解把,知道它会在应用启动的时候执行被这个注解标注的方法。其实它还有另外一个注解,实在Bean销毁前执行,它们都是Bean生命周期的一环,那他们具体在什么阶段执行呢?我们从源码的角度带大家分析下。和是规范中定义的类两个类,表示Bean初始化后和销毁前指定的注解,位于包下,而不是spring jar中的类。JSR-250, Java Specification Requests的缩写,意思是Java 规范提案。它是Java界共同制定的一个重要标准。它定义了一组通用的注解,比如@Pos

2022-06-20 19:35:03 1156

原创 【MySQL 8】MySQL 5.7都即将停只维护了,是时候学习一波MySQL 8了

用户的创建和授权在MySQL之前的版本,创建用户和给创建的用户授权可以一条语句执行完成:在MySQL 8中,创建用户和授权需要分开执行,否则会报错,执行不成功:在 中,需要分2不完成创建用户和授权的操作:再执行创建用户时,出现了如下错误:这是因为我的 安装完成后,进入命令行用的还是临时密码,并未修改root的初始密码,需要修改密码才允许操作。修改密码操作:再创建用户即可:认证插件在MySQL中,可以用 命令查看一些设置的MySQL变量,其中密码认证插件的变量名称是 。MySQ

2022-06-20 19:30:04 1875 5

原创 真的,Kafka 入门一篇文章就够了

Kafka 是由 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。消息:Kafka 中的数据单元被称为,也被称为记录,可以把它看作数据库表中某一行的记录。批次:为了提高效率, 消息会写入 Kafka,批次就代指的是一组消息。主题:消息的种类称为 (Topic),可以说一个主题代表了一类消息。相当于是对消息进行分类。主题就像是数据库中的表。分区:主题可以被分为若干个分区(partition),同一个主题中的分

2022-06-20 14:42:52 94

原创 kafka核心原理的秘密,藏在这16张图里

afka 是一个优秀的分布式消息中间件,许多系统中都会使用到 Kafka 来做消息通信。对分布式消息系统的了解和使用几乎成为一个后台开发人员必备的技能。今天就从常见的 Kafka 面试题入手,和大家聊聊 Kafka 的那些事儿。分布式消息是一种通信机制,和 RPC、HTTP、RMI 等不一样,消息中间件采用分布式中间代理的方式进行通信。如图所示,采用了消息中间件之后,上游业务系统发送消息,先存储在消息中间件,然后由消息中间件将消息分发到对应的业务模块应用(分布式生产者 - 消费者模式)。这种异步的方式,减少

2022-06-19 21:13:39 204

原创 超详细! kafka 入门最佳实践

Kafka 是一个分布式流媒体平台,kafka官网:http://kafka.apache.org/在Kafka中,客户端和服务器之间的通信是通过简单,高性能,语言无关的TCP协议完成的。此协议已版本化并保持与旧版本的向后兼容性。Kafka提供Java客户端,但客户端有多种语言版本。我们首先深入了解 Kafka 为记录流提供的核心抽象 - 主题topics一个Topic可以认为是一类消息,每个topic将被分成多个partition(区),每个partition在存储层面是append log文件主题是发布

2022-06-19 20:42:14 418

原创 分布式事务,原理简单,写起来全是坑

我们先来稍微回顾一下两阶段提交。先来看下面一张图:这张图里涉及到三个概念:那么什么是两阶段(Two-Phase Commit, 简称 2PC)提交?两阶段提交说白了道理很简单,松哥举个简单例子来和大家说明两阶段提交:比如下面一张图:我们在 Business 中分别调用 Storage 与 Order、Account,这三个中的操作要同时成功或者同时失败,但是由于这三个分处于不同服务,因此我们只能先让这三个服务中的操作各自执行,三个服务中的事务各自执行就是两阶段中的第一阶段。第一阶段执行完毕后,先不要急着提交

2022-06-19 20:32:54 95

原创 掘地三尺搞定 Redis 与 MySQL 数据一致性问题

在本文正式开始之前,我觉得我们需要先取得以下两点的共识:目录如下:[toc]数据一致性指的是:反推缓存与数据库不一致:把 Redis 作为缓存的时候,当数据发生改变我们需要双写来保证缓存与数据库的数据一致。数据库跟缓存,毕竟是两套系统,如果要保证强一致性,势必要引入 或 等分布式一致性协议,或者分布式锁等等,这个在实现上是有难度的,而且一定会对性能有影响。如果真的对数据的一致性要求这么高,那引入缓存是否真的有必要呢?在使用缓存时,通常有以下几种缓存使用策略用于提升系统性能:所谓「旁路缓存」,就是读取缓存

2022-06-19 17:21:55 93

空空如也

空空如也

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

TA关注的人

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