摘要:
概述 使用 Spring Cache 可以极大的简化我们对数据的缓存,并且它封装了多种缓存,本文基于 redis 来说明。 基本使用 1、所需依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- 阅读全文
摘要:
缓存穿透 **介绍:**当查询一个不存在的数据,此时缓存是不命中的,就会去查询 db,这将导致每次查询这个不存在的数据都要去访问 db,缓存就没有意义了。 如果不怀好意的人利用不存在的数据进行攻击,可能导致数据库崩溃 解决: 查询到的不存在的数据也放入缓存,可以存为 null,并加入短暂的过期时间( 阅读全文
摘要:
基本介绍 状态模式(State Pattern)主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题,类的行为是基于它的状态改变的。 模式结构 Context(环境角色) :用于维护 State 实例,这个实例定义当前状态 State(抽象状态) :定义一个接口以封装与 Context 的 阅读全文
摘要:
简介 关于 Redisson 的具体介绍可点击 这里,简单来说就是将 JUC 和 Redis 结合起来,使其可以实现多机器多线程同步的功能,Redisson 有很多组件,这篇主要介绍可重入锁 —— ReentantLock。 环境准备 添加 Maven 依赖 <dependency> <groupI 阅读全文
摘要:
基本介绍 解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 该模式对于复杂的场景实现起来比较 阅读全文
摘要:
安装 Elasticsearch 1、下载 Elasticsearch 镜像 2、在 Linux 本机上创建文件夹,用于挂载容器数据 3、设置为外部可访问 4、启动容器,9200端口是发送 http 请求所用,9300用于集群间的通讯,ES_JAVA_OPTS 设置内存大小(初始64m,最大占用51 阅读全文
摘要:
基本介绍 备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态 模式结构 Originator(发起者) :记录当前的状态,负责创建和恢复备忘录 Memento(备忘录) :负责存储发起者的状 阅读全文
摘要:
JVM 的生命周期 虚拟机的启动 Java 虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。 虚拟机的执行 一个运行中的 Java 虚拟机有着一个清晰的任务:执行 Java 程序。 阅读全文
摘要:
基本介绍 中介者模式(Mediator Pattern)用一个中间对象来封装一系列的对象交互,使得各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。 开发中常用的 MVC 模型就是一种中介者模式,Controller 阅读全文
摘要:
基本介绍 观察者模式(Observer Pattern)又被称为发布 订阅(Publish/Subscribe)模式、模型 视图(Model/View)模式、源 监听器(Source/Listener)模式或从属者(Dependents)模式,属于行为型模式的一种。 定义了一种一对多的模式,多个观察 阅读全文