随笔 - 2228  文章 - 4  评论 - 371  阅读 - 1109万

随笔分类 -  算法

1 2 下一页
Redis实现布隆过滤器
摘要:前面讲到bloomfilter的原理及guava实现的bloomfilter的用法,现在看看redis如何实现: 一、bitmaps 我们知道计算机是以二进制位作为底层存储的基础单位,一个字节等于8位。 比如“big”字符串是由三个字符组成的,这三个字符对应的ASCII码分为是98、105、103, 阅读全文
posted @ 2021-04-25 09:29 duanxz 阅读(2564) 评论(0) 推荐(1) 编辑
guava之BloomFilter
摘要:Guava中的布隆过滤器 示例: import com.google.common.base.Charsets; import com.google.common.hash.BloomFilter; import com.google.common.hash.Funnels; public clas 阅读全文
posted @ 2021-04-25 09:17 duanxz 阅读(1624) 评论(0) 推荐(0) 编辑
算法——贝叶斯
摘要:简介 学过概率理论的人都知道条件概率的公式:P(AB)=P(A)P(B|A)=P(B)P(A|B);即事件A和事件B同时发生的概率等于在发生A的条件下B发生的概率乘以A的概率。由条件概率公式推导出贝叶斯公式:P(B|A)=P(A|B)P(B)/P(A);即,已知P(A|B),P(A)和P(B)可以计 阅读全文
posted @ 2018-12-11 11:44 duanxz 阅读(4597) 评论(0) 推荐(0) 编辑
计算字符串的相似度-两种解法
摘要:一直不理解,为什么要计算两个字符串的相似度呢。什么叫做两个字符串的相似度。经常看别人的博客,碰到比较牛的人,然后就翻了翻,终于找到了比较全面的答案和为什么要计算字符串相似度的解释。因为搜索引擎要把通过爬虫抓取的页面给记录下来,那么除了通过记录url是否被访问过之外,还可以这样,比较两个页面的相似度, 阅读全文
posted @ 2018-11-07 17:31 duanxz 阅读(6080) 评论(0) 推荐(0) 编辑
红黑树(Red-Black tree)
摘要:红黑树又称红-黑二叉树,它首先是一颗二叉树,它具体二叉树所有的特性。同时红黑树更是一颗自平衡的排序二叉树。我们知道一颗基本的二叉树他们都需要满足一个基本性质–即树中的任何节点的值大于它的左子节点,且小于它的右子节点。按照这个基本性质使得树的检索效率大大提高。我们知道在生成二叉树的过程是非常容易失衡的 阅读全文
posted @ 2016-12-22 09:51 duanxz 阅读(2094) 评论(0) 推荐(0) 编辑
常见hash算法的原理
摘要:散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映 阅读全文
posted @ 2015-12-07 15:31 duanxz 阅读(20778) 评论(0) 推荐(0) 编辑
常见限流算法介绍(漏桶算法、令牌桶算法)及实现--待整理
摘要:1.限流2.限流算法 2.1计数器 2.2 漏桶算法 2.3 令牌桶算法 2.4、滑动时间窗 2.5、三色速率标记法三、限流实现 3.1 RateLimiter简介(guava的令牌桶实现) 3.2 基于 redis 的分布式限流 3.3 Spring Cloud GateWay整合redis内置R 阅读全文
posted @ 2014-11-26 13:48 duanxz 阅读(6440) 评论(0) 推荐(0) 编辑
一致性哈希算法原理、避免数据热点方法及Java实现
摘要:一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了 阅读全文
posted @ 2014-09-16 10:24 duanxz 阅读(1339) 评论(0) 推荐(0) 编辑
分布式一致性协议之:Paxos算法(转)
摘要:Paxos算法的难理解与算法的知名度一样令人敬仰,从我个人的经历而言,难理解的原因并不是该算法高深到大家智商不够,而在于Lamport在表达该算法时过于晦涩且缺乏一个完整的应用场景。如果大师能换种思路表达该算法,大家可能会更容易接受: 首先提出算法适用的场景,给出一个多数读者能理解的案例 其次描述P 阅读全文
posted @ 2014-06-13 18:01 duanxz 阅读(630) 评论(0) 推荐(0) 编辑
分布式一致性协议之:Zab(Zookeeper的分布式一致性算法)
摘要:Zookeeper使用了一种称为Zab(Zookeeper Atomic Broadcast)的协议作为其一致性复制的核心,据其作者说这是一种新发算法,其特点是充分考虑了Yahoo的具体情况:高吞吐量、低延迟、健壮、简单,但不过分要求其扩展性。下面将展示一些该协议的核心内容: 另,本文仅讨论Zook 阅读全文
posted @ 2014-06-13 18:01 duanxz 阅读(1325) 评论(0) 推荐(0) 编辑
分布式一致性协议之:Gossip(八卦)算法
摘要:Gossip算法因为Cassandra而名声大噪,Gossip看似简单,但要真正弄清楚其本质远没看起来那么容易。为了寻求Gossip的本质,下面的内容主要参考Gossip的原始论文:<<Efficient Reconciliation and Flow Control for Anti-Entrop 阅读全文
posted @ 2014-06-04 17:27 duanxz 阅读(3853) 评论(0) 推荐(0) 编辑
ZAB与Paxos算法的联系与区别
摘要:ZAB协议并不是Paxos算法的一个典型实现,在讲解ZAB和Paxos之间的区别之前,我们首先来看下两者的联系。 两者都存在一个类似于Leader进程的角色,由其负责协调多个Follow进程的运行。 Leader进程都会等待超过半数的Follower做出正确的反馈后,才会将一个提案进行提交。 在ZA 阅读全文
posted @ 2014-04-22 11:22 duanxz 阅读(2277) 评论(0) 推荐(0) 编辑
分布式一致性协议之:Raft算法
摘要:一致性算法Raft详解 背景 熟悉或了解分布性系统的开发者都知道一致性算法的重要性,Paxos一致性算法从90年提出到现在已经有二十几年了,而Paxos流程太过于繁杂实现起来也比较复杂,可能也是以为过于复杂 现在我听说过比较出名使用到Paxos的也就只是Chubby、libpaxos,搜了下发现Ke 阅读全文
posted @ 2014-03-30 22:28 duanxz 阅读(2503) 评论(0) 推荐(0) 编辑
对一致性Hash算法,Java代码实现的深入研究
摘要:一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中”一致性Hash算法”部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。 算法的具体原理这里再次贴上: 先构造一个长度为232的整数环(这个环被称为一致性 阅读全文
posted @ 2014-03-18 14:20 duanxz 阅读(419) 评论(0) 推荐(0) 编辑
各种排序算法的分析及java实现
摘要:排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果 阅读全文
posted @ 2014-02-10 14:33 duanxz 阅读(553) 评论(0) 推荐(0) 编辑
常用hash算法及评测[转]
摘要:RS hash 算法 unsigned int RSHash(char* str, unsigned int len) { unsigned int b = 378551; unsigned int a = 63689; unsigned int hash = 0; unsigned int i = 阅读全文
posted @ 2014-01-06 10:37 duanxz 阅读(1044) 评论(0) 推荐(0) 编辑
几种经典的hash算法
摘要:计算理论中,没有Hash函数的说法,只有单向函数的说法。所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据。用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很容易计算出其结果来;而当给定结果的时候,很难计算出输入来,这就是单项函数。各种加密函 数都可以被认为 阅读全文
posted @ 2014-01-05 23:03 duanxz 阅读(2247) 评论(0) 推荐(0) 编辑
Bloom Filter(布隆过滤器)的概念和原理
摘要:目录 引子 布隆过滤器介绍 产生的契机 设计思想 优缺点与用途 假阳性率的计算 Guava中的布隆过滤器 redis实现布隆过滤器 总结 引子 最近在研究推荐系统中已读内容排除以及重复内容去重相关的问题,布隆过滤器是解决这类问题最好的工具之一,很值得专门写一篇文章来详细讲解。 在缓存穿透的场景中,解 阅读全文
posted @ 2013-12-18 14:07 duanxz 阅读(4132) 评论(0) 推荐(1) 编辑
分布式限流之一:redis+lua 实现分布式令牌桶,高并发限流---temp
摘要:《高可用服务设计之二:Rate limiting 限流与降级》 《nginx限制请求之一:(ngx_http_limit_conn_module)模块》 《nginx限制请求之二:(ngx_http_limit_req_module)模块》 《nginx限制请求之三:Nginx+Lua+Redis 阅读全文
posted @ 2013-06-13 17:34 duanxz 阅读(4305) 评论(0) 推荐(0) 编辑
Trie(前缀树/字典树)及其应用
摘要:Trie,又经常叫前缀树,字典树等等。它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree。当然很多名字的意义其实有交叉。 定义 在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通 阅读全文
posted @ 2013-05-03 11:10 duanxz 阅读(907) 评论(0) 推荐(0) 编辑

1 2 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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