自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 系统架构设计面试题

设计一个 URL 缩短服务

2023-12-02 20:39:53 524

原创 LeetCode的几道题

思路就是:谁面对4块石头的时候,谁就输(因为每次就是1-3块石头,如果剩下4块石头,你怎么拿,我都能把剩下的拿走,所以你就要想尽办法让对面面对4块石头的倍数,比如有10块石头,你想办法让对方面对4的倍数,10%4=2,也就是你先手拿走2块比如有13块石头,你想办法让对方面对4的倍数,13%4=1,也就是你先手拿走1块但是假如你面对了4的倍数,你铁定输,因为对方也是聪明人。于是先手能不能赢,就看。

2023-12-02 18:46:43 224

原创 图面试专题

图相关

2023-11-29 22:38:42 322

原创 网络7层架构与TCP与UDP

综上所述,TCP适用于对数据传输的可靠性和有序性要求较高的场景,如文件传输、网页浏览等。UDP适用于实时性要求较高、对传输可靠性要求不高的场景,如实时游戏、视频通话等。UDP没有拥塞控制和流量控制的机制,传输效率较高,适用于实时性要求较高的应用,如视频流和音频流。,以适应网络的状况,这使得它在传输大量数据或要求高可靠性的场景下更为适用。UDP的头部开销相对较小,只包含基本的源端口、目标端口、长度和校验和字段。:不可靠、无连接、传输效率高(丢失、重复、乱序)、丢失数据的重传等来确保数据的可靠性。

2023-11-28 23:24:01 827 1

原创 Mysql的分库分表

分表分库与数据迁移

2023-11-27 20:22:22 262

原创 正则表达式回溯陷阱

判断一个句子是不是正规英文句子一个正常的英文句子如上,英文单词 + 空格隔开= 多个英文字符 [a-zA-Z]用 \s 表示那么一个句子就是单词空格(一个或者多个,最后那个单词是0个)(可能有多个单词+空格)+ 最后一个句号 .那正则就是。

2023-11-26 20:33:31 347

原创 4种经典的限流算法与集群限流

其中漏桶是一个形象的比喻,这里可以用生产者消费者模式进行说明,请求是一个生产者,每一个请求都如一滴水,请求到来后放到一个队列(漏桶)中,而桶底有一个孔,不断的漏出水滴,就如消费者不断的在消费队列中的内容,消费的速率(漏出的速度)等于限流阈值。比如上图的示例中,每 500ms 滑动一次窗口就可以避免这种临界问题,可以发现窗口滑动的间隔越短,时间窗口的临界突变问题发生的概率也就越小,不过只要有时间窗口的存在,还是有可能发生时间窗口的临界突变问题。是一种常用的限流算法,相对于漏桶算法,它可以。

2023-11-19 17:03:23 394

原创 Kafka面试题

Kafka采用分布式架构,可以横向扩展到多个Broker节点,每个节点可以承载多个分区和副本。这种架构允许数据分布在多个节点上,并行处理和传输消息,从而提高整体系统的吞吐量。:Kafka利用零拷贝技术在数据传输过程中避免了数据的多次复制,有效地降低了CPU和内存的消耗。生产者将数据直接写入内核空间的socket缓冲区,消费者从socket缓冲区直接读取数据,避免了数据在用户态和内核态之间的拷贝,提高了数据传输的效率。

2023-11-17 23:31:05 226

原创 二叉树面试专题

【代码】二叉树相关。

2023-11-16 15:47:47 88

原创 链表面试专题

链表相关题目

2023-11-14 18:44:12 80

原创 排序算法的空间复杂度和时间复杂度

它是这样的一种排序算法,对于每一位使用稳定的排序算法来排序,常见的是使用计数排序或桶排序。例如,如果我们考虑一个国家,它的手机号码是10位数的,那么我们可以认为 k 是常数,即 k = 10。基数排序的时间复杂度通常表示为 O(kN),其中 N 是排序元素的个数(在这个例子中是手机号码的个数),k 是元素的统计特性,通常取决于这些元素的最大位数。然而,实际的时间复杂度还受到其他因素的影响,比如使用的稳定排序算法的复杂度、手机号码的分布情况、以及在实际操作中对桶(或计数数组)的处理效率等。

2023-11-08 19:52:12 3677 5

原创 缓存失效方案

WRITE: 数据写入Mysql 和 Redis缓存,READ:先从 Redis 缓存中取数据,拿不到再从Mysql中加载,更新到Redis上图第三阶段,接收Mysql的binlog变更消息,可以参考阿里的 Canal,接入 Kafka。

2023-10-20 22:01:30 332

原创 Spring解决循环依赖问题

例如,就是A对象依赖了B对象,B对象依赖了A对象。问题来了:A Bean创建 ——> 依赖了 B 属性 ——> 触发 B Bean创建 ——> B 依赖了 A 属性 ——> 需要 A Bean(但A Bean还在创建过程中)

2023-08-15 14:34:47 361 1

原创 Tair的基本使用

基本数据类型,存储key->value 的映射,key的length小于1k,value的size小于10KB。我们可以存一组以pkey为主key,skey为子key的数据,这组数据拥有相同前缀,它们在磁盘上连续存放。给一个Key的区间,获取这个区间内所有的skey和对应的value。给一个Key的区间,只获取这个区间内所有的skey对应的value。给一个Key的区间,只获取这个区间内所有的skey。写入一个以pkey为主的key,一组skey。获取某个主key下的若干子Key的值。

2023-08-08 20:22:31 453

原创 同步、异步、阻塞、非阻塞

调用)的区别:关注的是调用方与被调用方之间的交互方式。同步调用会等待被调用方的结果返回,而异步调用则不会等待结果立即返回,可以通过回调或其他方式获取结果。调用)的区别:关注的是调用方在等待结果时的状态,阻塞调用会在等待过程中挂起当前线程,直到结果返回或超时,而非阻塞调用则会立即返回,无需等待操作完成。

2023-07-27 15:12:23 192

原创 【转载】elasticsearch 倒排索引原理

由于整型数字 integer 可以被高效压缩的特质,integer 是最适合放在 postings list 作为文档的唯一标识的,ES 会对这些存入的文档进行处理,转化成一个唯一的整型 id(这个id是document的id)。再说下这个 id 的范围,在存储数据的时候,在每一个 shard 里面,ES 会将数据存入不同的 segment,这是一个比 shard 更小的分片单位,这些 segment 会定期合并。

2023-07-21 16:41:53 268

原创 CPU3级缓存

cpu的三级缓存

2023-07-03 10:24:28 1133

原创 Mysql的学习笔记

场景:RC 隔离级别下的 MVCC 机制适合读多写少的场景,可以提高数据库的并发性能和可伸缩性;而 RR 隔离级别下的 MVCC 机制适合读写并发的场景,可以保证数据的一致性和可靠性。需要根据具体的业务场景和性能需求选择合适的事务隔离级别。ead Committed(RC)和 Repeatable Read(RR)都是支持多版本并发控制(MVCC)机制的事务隔离级别,它们之间的区别在于。并发性:RC级别,多个事务可以读取到同一记录的最新版本。可见性:RC级别,只能看到其他事务提交的最新版本。

2023-06-19 12:54:02 530

原创 Redis 学习笔记

1、纯内存操作(理解成容量就是内容条)2、作为缓存使用(因为内存条操作,比磁盘速度快)

2023-05-15 11:32:12 530

原创 LRU与LFU

LRU(Least Recently Used,最近最少使用)算法和LFU(Least Frequently Used,最近最少使用)算法都是用来作为缓存淘汰机制,保证缓存空间的有效利用。

2023-04-25 21:06:39 920 2

原创 ES 的存储原理

es 剖析

2022-12-23 17:03:53 7062 2

原创 Happens-Before原则

happen-before原则

2022-07-31 00:41:50 261

原创 Volatile从浅到深

volatile 剖析

2022-07-30 15:57:21 286

原创 CPU中的MESI协议(Intel)

intel的缓存一致性协议 MESI

2022-07-26 15:24:22 2171 1

原创 不同介质IO速度

网络IO > 局域网 > SSD > 普通硬盘

2022-06-18 22:39:17 1438

原创 一文看懂 | 什么是页缓存(Page Cache)

我们知道文件一般存放在硬盘(机械硬盘或固态硬盘)中,CPU 并不能直接访问硬盘中的数据,而是需要先将硬盘中的数据读入到内存中,然后才能被 CPU 访问。由于读写硬盘的速度比读写内存要慢很多(DDR4 内存读写速度是机械硬盘500倍,是固态硬盘的200倍),所以为了避免每次读写文件时,都需要对硬盘进行读写操作,Linux 内核使用 页缓存(Page Cache) 机制来对文件中的数据进行缓存。本文使用的 Linux 内核版本为:Linux-2.6.23什么是页缓存为了提升对文件的读写效率,

2022-03-21 14:53:27 543

转载 Kafka文件存储机制那些事【转自美团】

kafka存储

2021-08-03 00:29:05 157

原创 解决 KafkaException: Failed to acquire lock on file .lock

KafkaException

2021-08-01 23:59:34 3180

原创 【Kafka】结合JAVA实战与代码剖析(四)

1. 生产者2. 消费者3. 代码剖析

2020-08-01 20:48:29 315

原创 【Collection】Map浅复制与深复制

map深复制性能对比

2020-07-29 15:22:29 383

原创 【Kafka】消费者组 Consumer Group(三)

【Kafka】消费者组 Consumer Group(三)

2020-07-24 20:16:00 1642

原创 【Kafka】集群Mac单机多实例 (二)

集群Mac单机多实例

2020-07-23 20:28:53 726

原创 【Kafka】MacOS入门安装使用 (一)

入门

2020-07-22 14:20:45 444

原创 【MySQL】You can‘t specify target table ‘‘ for update in FROM clause解决办法

✅ 正确示范

2020-07-15 15:15:42 162

原创 【Kafka】图解概念

图解kafka

2020-07-14 20:17:07 585 1

原创 【工具类】JAVA使用MongoDB

JAVA连接Mongo3.6.3工具类

2020-06-25 00:19:44 357

原创 【数据结构】红黑树(jdk1.8详解)

红黑树

2020-04-05 22:21:31 450

原创 【计算机基础】原码, 反码, 补码以及二进制运算

1. 为什么会有原码反码补码?2. 二进制运算3. 二进制运算与HashMap

2019-12-19 18:36:38 1526 1

原创 【硬件】网速瓶颈排查

一、解决问题两台电脑,通过网线与路由器相连,上行下载速度最高只能到达 12M/s,那么显而易见,瓶颈在某个硬件属于百兆宽带,不属于千兆宽带。

2019-12-07 01:52:07 1418

原创 【线程】ThreadPool 线程池底层剖析 (二十)

1. ThreadPoolExecutor 剖析2. Executors 的 4 个常见方法底层

2019-10-29 00:56:43 423 1

尚硅谷Nosql文档资料redis

根据尚硅谷NOSQL视频,自己手动敲的,一行一行敲的。希望大家喜欢

2017-04-16

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

TA关注的人

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