- 博客(180)
- 收藏
- 关注
转载 VirtualBox虚拟机安装Centos7
设置3:如果想修改时间和时区,Application下的 System Tools,再点击Settings,在Settings下的Details中,点击Details——点击 Date & Time,将自动日期时间、自动时区打开即可。进入之后,点击Edit下的Preferences,再点击Unnamed下的Colors,将 User colors from system theme中的复选框给去掉勾选即可,然后将主题颜色可任意设置,我这地方设置为 Green on black,即黑底绿字。
2024-12-12 19:55:50
1462
1
原创 VirtualBox虚拟机安装Centos7
进入之后,点击Edit下的Preferences,再点击Unnamed下的Colors,将 User colors from system theme中的复选框给去掉勾选即可,然后将主题颜色可任意设置,我这地方设置为 Green on black,即黑底绿字。设置窗口大小,默认Centos窗口有点小。也可进去Text,设置字体大小,将Custom font勾选上,修改字体大小,默认 Monospace Regular字体,字体默认 是12,字体大小可改为16 18 20均可,改大一点,更具自己需求而定。
2024-12-11 11:03:03
743
原创 死锁定位解决
死锁死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。死锁发生的原因死锁的发生是由于资源竞争导致的,导致死锁的原因如下:系统资源不足,如果系统资源充足,死锁出现的可能性就很低。 进程(线程)运行推进的顺序不合适。 资源分配不当等。死锁发生的条件死锁的发生的四个必要条件:互斥条件:一个资源每次只能被一个进程使用。 占有且等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 不可强行占有:进程(线
2022-05-10 10:22:20
3840
原创 一文搞懂BeanFactory和FactoryBean区别
BeanFactory这个其实是所有Spring Bean的容器根接口,给Spring 的容器定义一套规范,给IOC容器提供了一套完整的规范,比如我们常用到的getBean方法等The root interface for accessing a Spring bean container. This is the basic client view of a bean container;定义方法:getBean(String name): Spring容器中获取对应Bean对...
2022-04-25 23:02:35
579
原创 mysql 查询一张表在另一张表中不存在的数据
mysql数据库中一张表与另一张表有相同的一个字段,需要过滤出 表t_camera 中在 t_sys_role_camera表中不存在的数据,利用关键字 NOT EXISTS来实现。同理可以使用EXISTS 关键字来查询一张表在另一张表中存在的数据。SELECT *FROM t_camera tWHERE NOT EXISTS ( SELECT * FROM t_sys_role_camera...
2022-04-19 16:27:57
6950
原创 mysql去除重复数据
mysql去除重复数据根据one列查询重复的数据(根据单列判断重复)SELECT * FROM tab_testWHERE ONE IN (SELECT ONE FROM testdelete GROUP BY ONE HAVING COUNT(ONE) > 1)删除表中的重复记录:(根据单列删除且保留ID最小的一条)DELETEFROM tab_testWHERE ONE IN(SELECT ONE FROM (SELECT...
2022-04-19 16:26:22
11174
原创 Spring隔离级别和传播机制
事务特征⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。 拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务
2022-03-30 20:53:33
174
原创 spring中bean的生命周期
1、spring中bean的生命周期(1)概念在spring框架中,所有的bean对象都有生命周期,就是指bean的创建、初始化、服务、销毁的一个过程。(2)bean的生命周期bean的定义在spring中通常是通过配置文档的方式来定义Bean的,在一个配置文件中可以定义多个Beanbean的初始化默认在IOC容器加载的时候实例化对象(ApplicationContext是,Beanfactory只有在调用getBean的时候才进行实例化):生命周期(初始化、销毁方法、BeanPos
2022-03-30 14:16:04
3905
原创 拦截器和过滤器的区别
拦截器和过滤器的区别过滤器和拦截器的区别: ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。 ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。 ⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点
2022-03-26 13:28:14
3855
转载 缓存穿透、缓存击穿、缓存雪崩区别和解决方案
一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的...
2022-02-19 17:15:29
128
转载 MySQL中按周、月、季、年分组统计
根据日期,按照周、月、季、年对数据进行分组统计一、前言 带着问题去学习,我觉得是一种非常有效的学习方法,不知下面的几个问题是否也是你所需要考虑的:被分组的日期是否连续、周是以周日为起始日,还是以周一为起始日、日期跨年。在讨论日期查询的复杂性之前,我们有必要知道一些内建日期处理函数和Date/Time(日期/时间)数据类型,已经有一定了解的快速浏览下就好,直接去后半部分享用正餐。二、内建日期处理函数NOW() 函数 定义和用法:NOW() 返回当前的日期和时间。查询select...
2022-02-17 17:51:05
4440
1
转载 Java设计模式之《模板模式》
1. 模板设计模式在书中定义: 定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。 通俗点的理解就是 :完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成。2. 如下网上找到的一个模板模式的类图: 抽象父类(AbstractClass):实现了模板方法,定义了算法的骨架。.
2022-02-14 16:11:23
245
转载 Java设计模式之《命令模式》
一、命令模式介绍命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志。以及支持可撤销的操作。说白了,就是将一系列的请求命令封装起来,不直接调用真正执行者的方法,这样比较好扩展。命令模式UML图:Command(抽象命令类):抽象出命令对象,可以根据不同的命令类型。写出不同的实现类ConcreteCommand(具体命令类):实现了抽象命令对象的具体实现Invoker(调用者/请求者):请求的发送者,它通过命令对象来执行请求。一个调用
2022-02-14 16:02:25
145
转载 Java设计模式之《组合模式》
一、什么是组合模式 在Swing中,容器Container和组件如Button、JLabel等等之间的关系就是组合关系,一个容器中有多个组件,组合模式更形象的说就是一棵树,描述的时部分-整体的关系。 组合模式(Composite),将对象组合成树形结构以表示“部分-整体”的层次结构,用户对单个对象和组合对象的使用具有一致性。 所以当我们的案例是树形结构或者是部分-整体的关系时,就可以考虑使用组合模式。 组合模式有两种不同的实现,分别为透明模式和安全模式,下面将详细说明一下两种实现的区
2022-02-14 15:43:16
536
转载 Java设计模式之《原型模式》
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedException
2022-02-14 14:41:49
149
转载 Java设计模式之《模板模式》
模板模式,顾名思义,就是通过模板拓印的方式。 定义模板,就是定义框架、结构、原型。定义一个我们共同遵守的约定。 定义了模板,我们的剩余工作就是对其进行充实、丰润,完善它的不足之处。 定义模板采用抽象类来定义,公共的结构化逻辑需要在抽象类中完成,只将非公共的部分逻辑抽象成抽象方法,留待子类充实实现。 所以上文所述不足之处就是这些抽象方法。 总的来说,模板模式就是通过抽象类来定义一个逻辑模板,逻辑框架、逻辑原型,然后将无法决定的部分抽象成抽象类交由子类来实现,一般这些抽象类的调用逻
2022-02-14 10:51:12
257
转载 Java设计模式之《构建者模式》
构建者模式,又称建造者模式,将一部负责对象的构建分为许多小对象的构建,最后在整合构建的模式。 构建者模式一般用在构建流程或者组成部件固定的场合,将这些部件分开构建成为组件对象,再将这些组件对象整合成为目标对象。 最佳实例就是组装台式电脑的情况,我们可以分别购买主板、CPU、内存、硬盘等部件,然后将这些部件组装在一起就形成了一台完整的电脑。 参照如下类图可以比较明显了了解编码如何实现构建者模式: 成员分析: Director:控制者类,这是控制整个组合过程,在这个
2022-02-12 15:22:32
354
转载 Java设计模式之《职责链模式》
职责链模式(称责任链模式)将请求的处理对象像一条长链一般组合起来,形成一条对象链。请求并不知道具体执行请求的对象是哪一个,这样就实现了请求与处理对象之间的解耦。 生活中这种情况其实很常见,公司部门之中,政府部门之中都有体现,在公司部门中,当你提交一份请求文件给你的直接上级时,你的直接上级可以处理这个文件,若他觉得自己不够资格,会将文件传递为他的直接上级,这样文件请求在这条链中传递,直到被某位感觉自己足够资格处理文件的人给处理掉为止,在政府部门也是如此。 职责链模式需要一个总接口,用来定义处理对象
2022-02-12 14:48:58
538
转载 Java设计模式之《调停者模式》
调停者模式。 我们想象一下这样的场景:一个系统内部通过许多的类互相之间相互调用来完成一系列的功能,这个系统内部的每个类都会存在至少一次的调用与被调用,多者数不胜数,这种情况下,一旦某个类发生问题,进行修改,无疑会影响到所有调用它的类,甚至它调用的类,可见这种情况下,类与类之间的耦合性极高(体现为太多的复杂的直接引用)。 这正是调停者模式的主场,调停者犹如第三方中介一般,将所有的类与类之间的引用都导向调停者类,所有类的请求,一致发向调停者,由调停者再发向目标类,这样原本复杂的网状的类关系,变成了简
2022-02-12 11:22:44
358
转载 Java设计模式之《抽象工厂模式》
一、概述抽象工厂模式是对工厂方法模式的再升级,但是二者面对的场景稍显差别。工厂方法模式面对的目标一般都是单类的,就比如《ava设计模式之《工厂方法模式》及使用场景》中所举的例子,目标就是桌子这一类商品。如果是这样的呢:生产的是桌椅组合,目标的一套商品,每一套商品中的每类商品的种类的不同的,不同的组合形成不同的套装。这种情况下,就需要使用抽象工厂模式二、实例我们还以家具为例:桌子接口:Desk/** * 桌子接口 */public interface Desk {
2022-02-12 10:29:39
147
转载 Java设计模式之《工厂方法模式》
一、概述工厂,就是生产产品的地方。在Java设计模式中使用工厂的概念,那就是生成对象的地方了。本来直接就能创建的对象为何要增加一个工厂类呢?这就需要了解工厂方法要解决的是什么问题了,如果只有一个类,我们直接new一个对象完事,这是最简单的;但是如果有多个类呢,而且这些类还需要针对不同的情况来创建不同的对象,这时候就需要工厂了,我们可以在工厂中根据条件来创建具体的对象。这样一来就将调用方和具体的目标类进行了解耦,调用方根本就不知道需要创建那个对象,它只是提出了条件,然后工厂就可以根据给定的
2022-02-12 10:28:26
164
转载 Java设计模式之《外观模式》
1、外观模式简介 外观模式,一般用在子系统与访问之间,用于对访问屏蔽复杂的子系统调用,采用耳目一新的外观类提供的简单的调用方法,具体的实现由外观类去子系统调用。 外观模式任然是一种中间件类型的模式,使用外观模式之后子系统的方法调用并非完全屏蔽,只是为访问者提供了一种更佳的访问方式,如果你不嫌麻烦,任然可以直接进行子系统方法调用。 甚至于在子系统与子系统之间进行调用时也可以通过各自的外观类来进行调用,这样代码方便管理。 下面请看代码实例:更能显示这种情况子系统方法11 pub
2022-02-11 17:12:02
121
转载 Java设计模式之《桥接模式》
这里摘抄一份他处的概念,你可以不必理会,先看下面得讲解与实例,然后返回来理解概念,不然抽象的概念会让你崩溃... 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。 个人理解:桥接是一个接口,它与一方应该是绑定的,也就是解耦的双方中的一方必然是继承这个接口的,这一方就是实
2022-02-11 16:42:02
205
转载 Java设计模式之《观察者模式》
观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监听者发现,这么想来目标发生情况到观察者知道情况,其实是由目标将情况发送到观察者的。 观察者模式多用于实现订阅功能的场景,例如微博的订阅,当我们订阅了某个人的微博账号,当这个人发布了新的消息,就会通知我们。 现在我们举一个类似的情况,并使用代码来实现,为大家提供一个比较明显的认识。 警察在找到嫌犯的时候,为了找到幕后主使,一般都会蹲点监察,这里我有三名便衣警察
2022-02-11 16:21:30
214
转载 Java设计模式之《享元模式》
享元模式:“享”就是分享之意,指一物被众人共享,而这也正是该模式的终旨所在。 享元模式有点类似于单例模式,都是只生成一个对象来被共享使用。这里有个问题,那就是对共享对象的修改,为了避免出现这种情况,我们将这些对象的公共部分,或者说是不变化的部分抽取出来形成一个对象。这个对象就可以避免到修改的问题。 享元的目的是为了减少不会要额内存消耗,将多个对同一对象的访问集中起来,不必为每个访问者创建一个单独的对象,以此来降低内存的消耗。 下面我们来看一个简单的例子:建筑接口:JianZhu1
2022-02-11 15:50:17
195
转载 Java设计模式之《代理模式》
代理模式算是我接触较早的模式,代理就是中介,中间人。法律上也有代理,比如代理律师之类,委托人将自己的一部分权限委托给代理者,代理者就拥有被代理者(委托人)的部分权限,并且可以以被代理人的名义来实行这些权限,此时代理者与委托人等同,当然代理人也可以在实行权限时配合自己的能力来进行,当然不能超出这个权限。 Java中的代理模式类似于上面的代理,我们也是为一个类(委托类)创建一个代理类,来代表它来对外提供功能。 如何在Java中创建一个类的代理类呢? 很简单,我们需要创建一个公共接口,委托类要实
2022-02-11 15:32:21
200
转载 Java设计模式之《装饰器模式》
一、概述装饰器模式作用是针对目标方法进行增强,提供新的功能或者额外的功能。不同于适配器模式和桥接模式,装饰器模式涉及的是单方,和代理模式相同,而且目标必须是抽象的。而实际上,装饰器模式和代理模式的实现方式基本一致,只在目标的存在上有些差别,这个后面我们具体讲述。二、初步分析上面提到了两点:涉及的是单方 目标是抽象的我们来想一下,所谓单方主要指的是在整个装饰器模式中不存在双方调用,要解决的也不是双方调用的问题,而是解决单方提供对外服务的问题,这个单方在自行对外提供服务时,功能不足,
2022-02-11 15:05:45
629
转载 Java设计模式之《适配器模式》
适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。 适配器模式有两种:类适配器、对象适配器、接口适配器 前二者在实现上有些许区别,作用一样,第三个接口适配器差别较大。1、类适配器模式: 原理:通过继承来实现适配器功能。 当我们要访问的接口A中没有我们想要的方法 ,却在另一个接口B中发现了合适的方法,我们又不能改变访问接口A,在这种情况下,我们可以定义一个适配器p来进行中转,这个适配器p要实现我们访
2022-02-11 14:45:08
1407
转载 消息不丢失
大家好,我是君哥。引入消息队列可以方便地实现系统解耦、削峰填谷等作用。但是消息队列使用不当,可能会引起消息丢失,在一些消息敏感的业务场景下,这是不允许的。今天我们来聊一聊 RocketMQ 怎么做能确保消息不丢失。1 RocketMQ 简介RocketMQ 是阿里巴巴开源的分布式消息中间件,整体架构如下图:RocketMQ 主要包括 Producer、Consumer 和 Broker,同时 Name Server 进行集群注册管理和保存元数据。2 消息不丢失要想保证消息不丢失,
2022-02-10 17:53:03
244
转载 BIO和NIO
01 前言这段时间自己在看一些Java中BIO和NIO之类的东西,看了很多博客,发现各种关于NIO的概念说的天花乱坠头头是道,可以说是非常的完整,但是整个看下来之后,自己对NIO还是一知半解的状态,所以这篇文章不会提到很多的概念,而是站在一个实践的角度,写一些我自己关于NIO的见解,站在实践过后的高度下再回去看概念,应该对概念会有一个更好的理解。02 实现一个简易单线程服务器要讲明白BIO和NIO,首先我们应该自己实现一个简易的服务器,不用太复杂,单线程即可。2.1 为什么使用单线程作.
2022-02-10 15:28:51
83
原创 7种分布式事务
什么是分布式事务分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器「分别位于不同的分布式系统的不同节点之上」。一个大的操作由N多的小的操作共同完成。而这些小的操作又分布在不同的服务上。针对于这些操作,「要么全部成功执行,要么全部不执行」。为什么会有分布式事务?举个例子:转账是最经典的分布式事务场景,假设用户 A 使用银行 app 发起一笔跨行转账给用户 B,银行系统首先扣掉用户 A 的钱,然后增加用户 B 账户中的余额。如果其中某个步骤失败,此时就有可能会出现
2021-12-22 15:47:52
872
原创 缓存为什么要用 Redis,而不是使用 MongoDB
分享一道面试题,问出这种问题,我觉得实在是也没什么意思。但是今天还是稍微来分析一下,毕竟总会有人问 1 加 1 为什么等于 2。首先,我们来想一下,既然是用来做缓存,必须要符合哪些特征呢?缓存所要具有的基本特征访问速度要快,不然我直接去数据库查岂不是更好,毕竟就是为了提升某些常态化数据的提取速度和减轻数据库压力,才去使用的缓存模块。 支持的存储方式要符合多方面的系统需要,比如不同语言编写的系统交互,是不是要去查询同一个缓存。 要比单纯读数据库更加节约成本。 能保存的数据量要够多,这..
2021-12-22 14:54:28
2444
转载 分布式事务
之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用。所以这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给大家讲清楚到底什么是 TCC 分布式事务。首先说一下,这里可能会牵扯到一些 Spring Cloud 的原理,如果有不太清楚的同学,可以参考之前的文章:《拜托,面试请不要再问我Spring Cloud底层原理!》。业务场景介绍#咱们先来看看业务场景,假设你现在有一个电商系
2021-12-22 11:03:16
94
原创 Redis 快
- 思维导图 -基于内存实现Redis 是基于内存的数据库,那不可避免的就要与磁盘数据库做对比。对于磁盘数据库来说,是需要将数据读取到内存里的,这个过程会受到磁盘 I/O 的限制。而对于内存数据库来说,本身数据就存在于内存里,也就没有了这方面的开销。高效的数据结构Redis 中有多种数据类型,每种数据类型的底层都由一种或多种数据结构来支持。正是因为有了这些数据结构,Redis 在存储与读取上的速度才不受阻碍。这些数据结构有什么特别的地方,各位看官接...
2021-06-16 10:27:50
94
原创 JDK序列化问题
谈到序列化我们自然想到 Java 提供的 Serializable 接口,在 Java 中我们如果需要序列化只需要继承该接口就可以通过输入输出流进行序列化和反序列化。但是在提供很用户简单的调用的同时他也存在很多问题:1、无法跨语言当我们进行跨应用之间的服务调用的时候如果另外一个应用使用c语言来开发,这个时候我们发送过去的序列化对象,别人是无法进行反序列化的因为其内部实现对于别人来说完全就是黑盒。2、序列化之后的码流太大这个我们可以做一个实验还是上一节中的Message类,我们分别用jav
2021-06-15 20:20:59
252
原创 聚集索引,非聚集索引,覆盖索引,
前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术的妹子找到我,让我想办法提升网站的访问速度 ,因为已经有很多用户来投诉了。我第一反应觉的是数据库上的问题,假装思索了一下,摆着一副深沉炫酷的模样说:“是不是数据库查询上出问题了, 给表加上索引吧”,然后妹子来了一句:“现在我们网站访问量太大,加索引有可能导致写入数据时性能下降,影响用户使用的”。当时我就楞了一下, 有种强行装逼被拆穿的感觉,在自己的专业领域居然被非专业的同学教育, 面子上真有点挂不住。其实, 我说
2021-06-15 19:35:26
165
原创 亲测双亲委派机制的缺陷及打破双亲委派机制
双亲委派机制时JVM类加载的默认使用的机制,其原理是:当一个类加载器收到类加载任务时,会先交给自己的父加载器去完成,因此最终加载任务都会传递到最顶层的BootstrapClassLoader,只有当父加载器无法完成加载任务时,才会尝试自己来加载。按照由父级到子集的顺序,类加载器主要包含以下几个:BootstrapClassLoader(启动类加载器):主要负责加载核心的类库(java.lang.*等),JVM_HOME/lib目录下的,构造ExtClassLoader和APPClassLoader。
2021-06-11 17:43:13
1633
原创 数据库事务
事务并发引发的问题在线购物平台、商品、库存隔离级别1.读未提交2.读已提交3.可重复读4.串行化脏读:读到未提交的数据不可重复读:一个事务中读到不同的结果(读的过程中,别的事务提交了)幻读:查询隔离级别select @@tx_isolation;//设置read uncommitted级别:set session transaction isolation level read uncommitted;//设置read committed级别:s.
2021-05-17 22:03:43
110
1
原创 常见分布式唯一ID生成策略及它们的优缺点对比
全局唯一的 ID 几乎是所有系统都会遇到的刚需。这个 id 在搜索, 存储数据, 加快检索速度 等等很多方面都有着重要的意义。有多种策略来获取这个全局唯一的id,针对常见的几种场景,我在这里进行简单的总结和对比。简单分析一下需求所谓全局唯一的 id 其实往往对应是生成唯一记录标识的业务需求。这个 id 常常是数据库的主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。这个记录标识上的查询,往往又有分页或者排序的业务需求。所以往往要有一个time字段,并且在t
2021-05-13 17:55:09
278
原创 MySQL与Redis缓存的同步方案
本文介绍MySQL与Redis缓存的同步的两种方案 通过MySQL自动同步刷新Redis,MySQL触发器+UDF函数实现 解析MySQL的binlog实现,将数据库中的数据同步到Redis 一、方案1(UDF)场景分析:当我们对MySQL数据库进行数据操作时,同时将相应的数据同步到Redis中,同步到Redis之后,查询的操作就从Redis中查找过程大致如下: 在MySQL中对要操作的数据设置触发器Trigger,监听操作 客户端(NodeServer)向M
2021-05-13 16:44:49
149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人