算法
文章平均质量分 53
hzzyu
熟悉php,go,python爬虫,热爱编程,尊重程序
展开
-
各类排序算法及go实现
常见排序算法及go语言实现原创 2022-06-08 18:17:45 · 267 阅读 · 1 评论 -
循环队列原理及实现
循环队列是 队列的一种特殊形式。首先介绍队列,然后引申出循环队列。 队列又称为“先进先出”FIFO线性表 限定插入操作只能在队尾进行,而删除操作只能在队首进行 队列也可以采用顺序存储结构或链表结构来实现,分别称为顺序队列和链队列 队列的顺序表示—顺序队列 用一组连续的存储单元依次存放从队首到队尾的元素,附设两个指针head和tail分别指向队首元素和队尾元素的位置, (有的地方用front 和 rear 表示)当head = tail = 0时表示空队列当插入新元素到队尾时,ta.原创 2022-05-23 09:08:15 · 1479 阅读 · 0 评论 -
The Power of Two Random Choices
1. 介绍常见的Load balance算法想必大家都不陌生,Random、Round-robin、Least connection、Consistent hash等应该都耳熟能详,这些算法都在实践中有广泛的应用,例如Nginx、Haproxy等负载均衡模块都有相应算法的实现。本文将和大家分享一种全新的Load balance算法:Power of Two Random Choices[1],也算是Fast 2019 best paper解读《Distcache: Provable load balan原创 2020-10-21 23:01:00 · 922 阅读 · 2 评论 -
什么是一致性 Hash 算法?面试又被问到怎么办?
01数据分片✔︎ 先让我们看一个例子吧我们经常会用 Redis 做缓存,把一些数据放在上面,以减少数据的压力。当数据量少,访问压力不大的时候,通常一台Redis就能搞定,为了高可用,弄个主从也就足够了;当数据量变大,并发量也增加的时候,把全部的缓存数据放在一台机器上就有些吃力了,毕竟一台机器的资源是有限的,通常我们会搭建集群环境,让数据尽量平均的放到每一台 Redis 中,比如我们的集群中有 4 台Redis。那么如何把数据尽量平均地放到这 4 台Redis中呢?最简单的就是取模算法:hash(原创 2020-10-18 20:20:26 · 154 阅读 · 2 评论 -
聊聊一致性哈希
既然有一致性哈希,就肯定还有不一致哈希,为啥平时没人说不一致哈希呢?因为常见的哈希都是不一致的,所以就不修饰了,到了一致性哈希才特殊加个描述词修饰一下。哈希一般都是将一个大数字取模然后分散到不同的桶里,假设我们只有两个桶,有 2、3、4、5 四个数字,那么模 2 分桶的结果就是:这时我们嫌桶太少要给哈希表扩容加了一个新桶,这时候所有的数字就需要模 3 来确定分在哪个桶里,结果就变成了:可以看到新加了一个桶后所有数字的分布都变了,这就意味着哈希表的每次扩展和收缩都会导致所有条目..原创 2020-10-18 20:09:26 · 142 阅读 · 0 评论 -
Twitter雪花算法SnowFlake改造: 兼容JS截短位数的53bit分布式ID生成器
前言 众所周知, 在分布式全局唯一ID生成器方案中, 由Twitter开源的SnowFlake算法对比美团Leaf为代表的需要部署的发号器算法, 因其有性能高, 代码简单, 不依赖第三方服务, 无需独立部署服务等优点, 在一般情况下已经能满足绝大多数系统的需求, 原生SnowFlake, 百度UidGenerator这类基于划分命名空间原理的算法已经积累了大量用户; 使用原生的雪花算法...原创 2020-03-13 19:06:31 · 1704 阅读 · 0 评论