07 2021 档案

摘要:MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定 》 一、死锁 1.死锁:两个或以上的进程在执行过程中因争夺资源造成的相互等待的现象 (1)表级锁不会产生死锁,所以解决死锁主要还是针对于最常用的InnoDB. (2)产生死锁的关键:两个(或以上)的Session加锁 阅读全文
posted @ 2021-07-31 17:05 KLAPT 阅读(106) 评论(0) 推荐(0) 编辑
摘要:缓存 数据共享分布式 分布式锁 全局ID 计数器 限流 位统计 购物车 用户消息时间线timeline 消息队列 抽奖 点赞、签到、打卡 商品标签 商品筛选 用户关注、推荐模型 排行榜 1、缓存 String类型 例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数 阅读全文
posted @ 2021-07-31 16:21 KLAPT 阅读(44) 评论(0) 推荐(0) 编辑
摘要:@Bean 基础概念 @Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中; SpringIOC 容器管理一个或者多个 阅读全文
posted @ 2021-07-29 11:52 KLAPT 阅读(1265) 评论(0) 推荐(0) 编辑
摘要:方法一: 用数据库的 auto_increment 来生成 优点: 此方法使用数据库原有的功能,所以相对简单 能够保证唯一性 能够保证递增性 id 之间的步长是固定且可自定义的 缺点: 可用性难以保证:数据库常见架构是 一主多从 + 读写分离,生成自增ID是写请求 主库挂了就玩不转了 扩展性差,性能 阅读全文
posted @ 2021-07-28 20:36 KLAPT 阅读(222) 评论(0) 推荐(0) 编辑
摘要:Centos Centos 是一个基于 Linux 的开源免费操作系统 # 本地拷贝文件到远程服务器scp output.txt root@47.93.242.155:/data/ output.txt:本地文件 root:登录远程服务器的账号 47.93.242.155:远程服务器的 IP /da 阅读全文
posted @ 2021-07-28 19:56 KLAPT 阅读(50) 评论(0) 推荐(0) 编辑
摘要:具体到操作流程: 当执行某个写操作的 SQL 时,引擎将这行数据更新到内存的同时把对应的操作记录到 redo log 里面,然后处于 prepare 状态。并把完成信息告知给执行器。 执行器生成对应操作的 binlog,并把 binlog 写入磁盘里。然后调用引擎的提交事务接口,变更 redo lo 阅读全文
posted @ 2021-07-28 15:47 KLAPT 阅读(68) 评论(0) 推荐(0) 编辑
摘要:Redis的VM(虚拟内存)机制就是暂时把不经常访问的数据(冷数据)从内存交换到磁盘中,从而腾出宝贵的内存空间用于其它需要访问的数据(热数据)。 Redis提高数据库容量的办法有两种: 1、一种是可以将数据分割到多个Redis Server上; 2、另一种是使用虚拟内存把那些不经常访问的数据交换到磁 阅读全文
posted @ 2021-07-28 15:31 KLAPT 阅读(52) 评论(0) 推荐(0) 编辑
摘要:工厂模式的好处是这些对象不需要暴露自身的创建过程,统一由工厂模式进行创建和提供,隐藏了创建细节,避免了错误的创建对象的形式,也减少了重复创建冗余代码。 简单工厂模式 工厂方法模式 抽象工厂模式 1、简单工厂 第一,对象和基类之间是基于继承的。 第二,工厂类耦合了不同对象的创建,如果对象类型不是固定或 阅读全文
posted @ 2021-07-28 14:51 KLAPT 阅读(59) 评论(0) 推荐(0) 编辑
摘要:127.0.0.1 这是个 IPV4 地址。IPV4 地址有 32 位,一个字节有 8 位,共 4 个字节。其中127 开头的都属于回环地址,也是 IPV4 的特殊地址。而127.0.0.1是众多回环地址中的一个。之所以不是 127.0.0.2 ,而是 127.0.0.1,是因为源码里就是这么定义的 阅读全文
posted @ 2021-07-20 11:59 KLAPT 阅读(2722) 评论(0) 推荐(0) 编辑
摘要:对于 InnoDB 存储引擎来说,它可以将每张表存放于独立的表空间,即tablename.ibd 文件;也可以将数据存放于 ibdata 的共享表空间,一般命名是 ibdataX,后面的 X 是一个具体的数字。 查看是否开启了独立表空间 >show variables like 'innodb_fi 阅读全文
posted @ 2021-07-20 11:23 KLAPT 阅读(320) 评论(0) 推荐(0) 编辑
摘要:流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。 如果没有流式查询,我们想要从数据库取 1000 万条记录而又没有足够的内存时,就不得不分页查询,而分页查询效率取决于表设计,如果设计的不好,就无法执行高效的分页查询。因此流 阅读全文
posted @ 2021-07-15 15:20 KLAPT 阅读(276) 评论(0) 推荐(0) 编辑
摘要:在Java技术体系中所提供的能够让我们在运行时识别对象和类的类型信息的方式,一共有两种:即反射和多态关键技术RTTI。 多态和反射两者的最大的共同点在于,他们都是运行时获取程序信息的技术。 多态 多态是面向对象编程里面的概念,一个接口的多种不同的实现方式,即为多态。 多态体现在:只有在运行的时候才知 阅读全文
posted @ 2021-07-13 17:35 KLAPT 阅读(378) 评论(0) 推荐(0) 编辑
摘要:基于内存实现 我们都知道内存读写是比磁盘读写快很多的。Redis是基于内存存储实现的数据库,相对于数据存在磁盘的数据库,就省去磁盘磁盘I/O的消耗。MySQL等磁盘数据库,需要建立索引来加快查询效率,而Redis数据存放在内存,直接操作内存,所以就很快。 高效的数据结构 MySQL索引为了提高效率, 阅读全文
posted @ 2021-07-13 16:09 KLAPT 阅读(315) 评论(0) 推荐(0) 编辑
摘要:1、insert ignore into 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉 》INSERT IGNORE INTO user (name) VALUES ('telami') 2、on duplica 阅读全文
posted @ 2021-07-12 23:54 KLAPT 阅读(464) 评论(0) 推荐(0) 编辑
摘要:TCP 是一种面向连接的单播协议,在 TCP 中,并不存在多播、广播的这种行为,因为 TCP 报文段中能明确发送方和接受方的 IP 地址。 在发送数据前,相互通信的双方(即发送方和接受方)需要建立一条连接,在发送数据后,通信双方需要断开连接,这就是 TCP 连接的建立和终止。 TCP 的基本元素有四 阅读全文
posted @ 2021-07-12 00:06 KLAPT 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 3、尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而 阅读全文
posted @ 2021-07-11 22:38 KLAPT 阅读(34) 评论(0) 推荐(0) 编辑
摘要:微服务框架不应该限制技术与语言,但生产实践中发现无论dubbo还是spring cloud都具有侵入性,我们在将nodejs应用融入spring cloud体系时就发现了许多问题。也许未来的service mesh才是更合理的发展道路。 zuul作为gateway,分发不同客户端的请求到具体serv 阅读全文
posted @ 2021-07-08 09:28 KLAPT 阅读(36) 评论(0) 推荐(0) 编辑
摘要:单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。 工厂方法(Factory Method)模式:定义一个用于创建产品的接口,由 阅读全文
posted @ 2021-07-08 09:12 KLAPT 阅读(51) 评论(0) 推荐(0) 编辑
摘要:BCDE都需要用到A系统提供的数据,A系统跟其他四个系统严重耦合;A系统的数据只需要放到MQ里面,其他的系统想请求获取数据只需要去MQ里面消费即可,如果突然不想请求了,就取消对MQ的消费就行了,A系统根本不需要考虑给谁去响应这个数据,也不需要去维护代码,也不用考虑其他系统是否调用成功,失败超时等情况 阅读全文
posted @ 2021-07-07 11:06 KLAPT 阅读(114) 评论(0) 推荐(0) 编辑
摘要:JVM 中的线程与操作系统的线程是一对一的关系,所以在 JVM 中每创建一个线程就需要调用操作系统提供的 API 创建线程,赋予资源,并且销毁线程同样也需要系统调用。 而系统调用就意味着上下文切换等开销,并且线程也是需要占用内存的,而内存也是珍贵的资源。 因此线程的创建和销毁是一个重操作,并且线程本 阅读全文
posted @ 2021-07-07 10:41 KLAPT 阅读(41) 评论(0) 推荐(0) 编辑
摘要:MySQL逻辑架构 MySQL逻辑架构整体分为三层,最上层为客户端层,并非MySQL所独有,诸如:连接处理、授权认证、安全等功能均在这一层处理。 MySQL大多数核心服务均在中间这一层,包括查询解析、分析、优化、缓存、内置函数(比如:时间、数学、加密等函数)。所有的跨存储引擎的功能也在这一层实现:存 阅读全文
posted @ 2021-07-06 23:42 KLAPT 阅读(32) 评论(0) 推荐(0) 编辑
摘要:Redis是REmote DIctionary Server的简称,意为“远程字典服务器”。它是基于BSD协议的完全开源的高性能的key-value数据库。 它是一个单线程却性能极好的内存数据库,所有的操作都是按照顺序线性执行的,避免了不必要的上下文切换和竞争条件。 采用非阻塞I/O的形式进行通信, 阅读全文
posted @ 2021-07-05 23:49 KLAPT 阅读(41) 评论(0) 推荐(0) 编辑
摘要:类加载 平常写的代码是保存在一个 .java文件里面,经过编译会生成.class文件,这个文件存储的就是字节码,如果要用上我们的代码,那就必须把它加载到 JVM 中。 当然,加载到 JVM 生成 class 对象的来源不一定得是.class文件,也可以来自网络等等,反正只要是符合 JVM 规范的都行 阅读全文
posted @ 2021-07-05 23:33 KLAPT 阅读(36) 评论(0) 推荐(0) 编辑
摘要:HashMap是Map族中最为常用的一种,也是Java Collection Framework的重要成员。HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Node节点链入一个双向链表的HashM 阅读全文
posted @ 2021-07-04 23:21 KLAPT 阅读(81) 评论(0) 推荐(0) 编辑
摘要:6态 New:新建状态 Runnable:可运行状态 Terminated:终止状态 Waiting:等待状态 TimedWaiting:超时等待状态 Blocked:阻塞状态 7态 New:新建状态 Ready:就绪状态 Running:运行状态 Terminated:终止状态 Waiting:等 阅读全文
posted @ 2021-07-04 23:04 KLAPT 阅读(80) 评论(0) 推荐(0) 编辑
摘要:1.使用Netty能够做什么 开发异步、非阻塞的TCP网络应用程序; 开发异步、非阻塞的UDP网络应用程序; 开发异步文件传输应用程序; 开发异步HTTP服务端和客户端应用程序; 提供对多种编解码框架的集成,包括谷歌的Protobuf、Jboss marshalling、Java序列化、压缩编解码、 阅读全文
posted @ 2021-07-02 09:17 KLAPT 阅读(62) 评论(0) 推荐(0) 编辑
摘要:业务层面 key的长度尽量要短,在数据量非常大时,过长的key名会占用更多的内存; 一定避免存储过大的数据(大value),过大的数据在分配内存和释放内存时耗时严重,会阻塞主线程; Redis 4.0以上建议开启lazy-free机制,释放大value时异步操作,不阻塞主线程; 建议设置过期时间,把 阅读全文
posted @ 2021-07-01 20:56 KLAPT 阅读(57) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示