算法
文章平均质量分 61
大口吃饭大口吐
一个热爱历史的码农
展开
-
常见的正则表达式案例
校验数字的表达式校验字符的表达式特殊需求表达式。原创 2024-09-27 09:51:07 · 79 阅读 · 0 评论 -
抢红包算法
做N-1次随机运算,随机的范围为 (1, M),当切割点重复时重新随机。将红包总金额比作一条线段,随机出N-1个切割点,事先将红包分成N份。红包总金额为M,人数为N。原创 2024-09-26 10:33:37 · 50 阅读 · 0 评论 -
微服务注册发现 分析
综上所述,RPC的每一次请求对服务注册中心的压力是存在的,但可以通过优化注册中心、缓存查询结果和负载均衡等措施来减轻压力,提高系统性能和可靠性。微服务注册只需要一个key,服务发现需要watch和分布式锁机制,这些是一些字面上简单的东西,但是在分布式系统中,服务实例的数量可能非常多。综上所述,etcd的分布式服务注册和发现具有更好的可扩展性、可用性、动态更新和负载均衡等优势,使得分布式系统的服务管理更加高效、灵活和可靠。RPC的每一次请求都需要向服务注册中心发起查询请求,以获取服务提供者的地址信息。原创 2024-09-25 11:32:32 · 418 阅读 · 0 评论 -
流量限流算法
滑动窗口为固定窗口的改良版,解决了固定窗口在窗口切换时会受到两倍于阈值数量的请求,滑动窗口在固定窗口的基础上,将一个窗口分为若干个等份的小窗口,每个小窗口对应不同的时间点,拥有独立的计数器,当请求的时间点大于当前窗口的最大时间点时,则将窗口向前平移一个小窗口(将第一个小窗口的数据舍弃,第二个小窗口变成第一个小窗口,当前请求放在最后一个小窗口),整个窗口的所有请求数相加不能大于阈值。在指定周期内累加访问次数,当访问次数达到设定的阈值时,触发限流策略,当进入下一个时间周期时进行访问次数的清零。原创 2024-09-25 11:32:15 · 357 阅读 · 0 评论 -
散列表 HashMap
有这么种场景10不断O(1)将个人信息更详细点,一个身份证号、一个名字对应一个具体的信息。原创 2024-09-24 09:30:39 · 330 阅读 · 0 评论 -
瞎扯程序中的堆、栈
逻辑结构:队列、栈、表、树、图、表……物理结构:链表、数组。原创 2024-09-21 16:04:20 · 610 阅读 · 0 评论 -
uuid 雪花算法
雪花算法,分布式系统全局唯一ID生成算法整个id使用了一个64bit的long数字第一块:占用1个bit,最高符号位,0表示正数 1表示负数第二块:占用41个bit,毫秒时间戳,41位可以表示2^40个值,也就是69年第三块:占用10个bit,机房和机器ID,自己可以定义前5位为机房ID,后5位为机器ID,也就是可以有32个机房,每个机房有32个机器 合计1024台机器 当然你把这10位全部作为机器ID也可以。原创 2024-09-20 10:18:22 · 464 阅读 · 0 评论 -
(My)raft算法
假设这是一条完整的作业流程,在保证完整性、顺序性、一致性情况下,那么成功执行的次数与生成的结果次数是对等的,对此流程生成结果命名为状态机,那么在3个原则情况下,这群状态机是可靠健壮的。当有Follower节点超时时间到了后,没有收到leader的请求,自身将切换身份为Candidate,自身的任期属性提升一届,向其它所有节点发送竞选信息。为首批吃螃蟹人,为此做出了解决方案,一致性的思想作为衍生基础,例如:决策、复制、成员身份变更,并获得图灵奖。索引、任期、指令 3个重要属性,为日志指令成功复制的核心。原创 2024-09-20 10:16:11 · 1001 阅读 · 0 评论 -
(My)raft步骤图解
【代码】(My)raft步骤图解。原创 2024-09-20 10:13:44 · 155 阅读 · 0 评论 -
分布式理论CAP
CAP理论,又称布鲁尔定理,由加州大学伯克利分校的计算机科学家Eric Brewer提出。CAP代表一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance),这三个属性是分布式系统设计的核心。一致性确保在分布式系统中,所有节点在同一时刻看到的数据是相同的。这要求系统在任何时候都能提供最新的数据副本。可用性意味着系统能够保证每个请求都能在有限的时间内得到响应,无论是读请求还是写请求。原创 2024-09-20 10:10:21 · 403 阅读 · 0 评论 -
php - Rsa加密示例
【代码】php - Rsa加密示例。原创 2024-09-18 09:48:29 · 79 阅读 · 0 评论 -
bitmap算法
另一种方案则是构造3个8bit(即3byte),将这20个员工跟员工号分别映射到这20个位置,如果当天正常考勤了,则将对应的这个位置置为1,否则置为0;int占4字节,1字节=8位(1 byte = 8 bit)如果每个数字用int存储,那就是20亿个int,因而占用的空间为(2000000000*4/1024/1024/1024)≈7.45G。3个二进制进行与操作,01101000即为3个数字的最终存储结果,只耗费了1个字节,并且才使用了1个字节3/8的空间。3 存储时 00001000。原创 2024-09-18 09:46:14 · 529 阅读 · 0 评论 -
缓存穿透、击穿、雪崩
和缓存击穿不同的是,缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。大量缓存集中或者缓存同时在大范围中失效,出现了大量请求去访问数据库,从而导致CPU和内存过载,甚至宕机。因为缓存刚过期,同时是并发请求,导致过期的数据还未来得及写到缓存中,并发请求都会到数据库中查询数据。的数据或者特别大的不存在的数据,导致一直无法命中缓存,请求落到数据库。当前热点数据在缓存中存储到期或者意外失效时,多个线程同时。缓存和数据库中都没有的数据,而用户却不断发起请求。原创 2024-09-12 18:43:03 · 359 阅读 · 0 评论 -
PHP Bitmap算法
假设以1个字节为一个单元,总共有8个bit,可放8个数字。为初始化,填充进去第7个位置应当为。原创 2024-09-12 18:42:47 · 254 阅读 · 0 评论