- 博客(81)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 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 227
原创 网络7层架构与TCP与UDP
综上所述,TCP适用于对数据传输的可靠性和有序性要求较高的场景,如文件传输、网页浏览等。UDP适用于实时性要求较高、对传输可靠性要求不高的场景,如实时游戏、视频通话等。UDP没有拥塞控制和流量控制的机制,传输效率较高,适用于实时性要求较高的应用,如视频流和音频流。,以适应网络的状况,这使得它在传输大量数据或要求高可靠性的场景下更为适用。UDP的头部开销相对较小,只包含基本的源端口、目标端口、长度和校验和字段。:不可靠、无连接、传输效率高(丢失、重复、乱序)、丢失数据的重传等来确保数据的可靠性。
2023-11-28 23:24:01 834 1
原创 正则表达式回溯陷阱
判断一个句子是不是正规英文句子一个正常的英文句子如上,英文单词 + 空格隔开= 多个英文字符 [a-zA-Z]用 \s 表示那么一个句子就是单词空格(一个或者多个,最后那个单词是0个)(可能有多个单词+空格)+ 最后一个句号 .那正则就是。
2023-11-26 20:33:31 348
原创 4种经典的限流算法与集群限流
其中漏桶是一个形象的比喻,这里可以用生产者消费者模式进行说明,请求是一个生产者,每一个请求都如一滴水,请求到来后放到一个队列(漏桶)中,而桶底有一个孔,不断的漏出水滴,就如消费者不断的在消费队列中的内容,消费的速率(漏出的速度)等于限流阈值。比如上图的示例中,每 500ms 滑动一次窗口就可以避免这种临界问题,可以发现窗口滑动的间隔越短,时间窗口的临界突变问题发生的概率也就越小,不过只要有时间窗口的存在,还是有可能发生时间窗口的临界突变问题。是一种常用的限流算法,相对于漏桶算法,它可以。
2023-11-19 17:03:23 400
原创 Kafka面试题
Kafka采用分布式架构,可以横向扩展到多个Broker节点,每个节点可以承载多个分区和副本。这种架构允许数据分布在多个节点上,并行处理和传输消息,从而提高整体系统的吞吐量。:Kafka利用零拷贝技术在数据传输过程中避免了数据的多次复制,有效地降低了CPU和内存的消耗。生产者将数据直接写入内核空间的socket缓冲区,消费者从socket缓冲区直接读取数据,避免了数据在用户态和内核态之间的拷贝,提高了数据传输的效率。
2023-11-17 23:31:05 226
原创 排序算法的空间复杂度和时间复杂度
它是这样的一种排序算法,对于每一位使用稳定的排序算法来排序,常见的是使用计数排序或桶排序。例如,如果我们考虑一个国家,它的手机号码是10位数的,那么我们可以认为 k 是常数,即 k = 10。基数排序的时间复杂度通常表示为 O(kN),其中 N 是排序元素的个数(在这个例子中是手机号码的个数),k 是元素的统计特性,通常取决于这些元素的最大位数。然而,实际的时间复杂度还受到其他因素的影响,比如使用的稳定排序算法的复杂度、手机号码的分布情况、以及在实际操作中对桶(或计数数组)的处理效率等。
2023-11-08 19:52:12 3862 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 362 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 471
原创 同步、异步、阻塞、非阻塞
调用)的区别:关注的是调用方与被调用方之间的交互方式。同步调用会等待被调用方的结果返回,而异步调用则不会等待结果立即返回,可以通过回调或其他方式获取结果。调用)的区别:关注的是调用方在等待结果时的状态,阻塞调用会在等待过程中挂起当前线程,直到结果返回或超时,而非阻塞调用则会立即返回,无需等待操作完成。
2023-07-27 15:12:23 193
原创 【转载】elasticsearch 倒排索引原理
由于整型数字 integer 可以被高效压缩的特质,integer 是最适合放在 postings list 作为文档的唯一标识的,ES 会对这些存入的文档进行处理,转化成一个唯一的整型 id(这个id是document的id)。再说下这个 id 的范围,在存储数据的时候,在每一个 shard 里面,ES 会将数据存入不同的 segment,这是一个比 shard 更小的分片单位,这些 segment 会定期合并。
2023-07-21 16:41:53 271
原创 Mysql的学习笔记
场景:RC 隔离级别下的 MVCC 机制适合读多写少的场景,可以提高数据库的并发性能和可伸缩性;而 RR 隔离级别下的 MVCC 机制适合读写并发的场景,可以保证数据的一致性和可靠性。需要根据具体的业务场景和性能需求选择合适的事务隔离级别。ead Committed(RC)和 Repeatable Read(RR)都是支持多版本并发控制(MVCC)机制的事务隔离级别,它们之间的区别在于。并发性:RC级别,多个事务可以读取到同一记录的最新版本。可见性:RC级别,只能看到其他事务提交的最新版本。
2023-06-19 12:54:02 533
原创 LRU与LFU
LRU(Least Recently Used,最近最少使用)算法和LFU(Least Frequently Used,最近最少使用)算法都是用来作为缓存淘汰机制,保证缓存空间的有效利用。
2023-04-25 21:06:39 943 2
原创 一文看懂 | 什么是页缓存(Page Cache)
我们知道文件一般存放在硬盘(机械硬盘或固态硬盘)中,CPU 并不能直接访问硬盘中的数据,而是需要先将硬盘中的数据读入到内存中,然后才能被 CPU 访问。由于读写硬盘的速度比读写内存要慢很多(DDR4 内存读写速度是机械硬盘500倍,是固态硬盘的200倍),所以为了避免每次读写文件时,都需要对硬盘进行读写操作,Linux 内核使用 页缓存(Page Cache) 机制来对文件中的数据进行缓存。本文使用的 Linux 内核版本为:Linux-2.6.23什么是页缓存为了提升对文件的读写效率,
2022-03-21 14:53:27 553
原创 【MySQL】You can‘t specify target table ‘‘ for update in FROM clause解决办法
✅ 正确示范
2020-07-15 15:15:42 162
原创 【硬件】网速瓶颈排查
一、解决问题两台电脑,通过网线与路由器相连,上行下载速度最高只能到达 12M/s,那么显而易见,瓶颈在某个硬件属于百兆宽带,不属于千兆宽带。
2019-12-07 01:52:07 1421
原创 【线程】ThreadPool 线程池底层剖析 (二十)
1. ThreadPoolExecutor 剖析2. Executors 的 4 个常见方法底层
2019-10-29 00:56:43 426 1
微信授权提示 ”近期你已经授权登陆过XXXXX 自动登录中“,如何不让这句话出来
2015-08-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人