前言 上一节我们讲了哈希算法的四个应用,分别是安全加密、数据校验、唯一标识、散列函数。今天再来看看剩下的三个应用:负载均衡、数据分片、分布式存储。 可能大家已经发现了,这三个应用都是与分布式相关的。没错,今天我们来学习一下,哈希算法是如何解决这些分布式问题的。 应用五:负载均衡 负载均衡算法有很多, ...
分类:
编程语言 时间:
2020-07-06 20:00:29
阅读次数:
69
你以为Redis这么快仅仅因为单线程和基于内存?那么你想得太少了,我个人认为Redis的快是基于多方面的:不但是单线程和内存,还有底层的数据结构设计,网络通信的设计,主从、哨兵和集群等等方面的设计~下面,我将360°为你揭开RedisQPS达到10万/秒的神秘面纱。一、底层数据结构设计1、底层架构:首先值得称赞的第一点:Redis底层使用的数据结构很多,但是却没有直接使用这些数据结构来实现键值对数
分类:
编程语言 时间:
2020-07-06 19:42:04
阅读次数:
49
转 一、索引优化 索引的数据结构是 B+Tree,而 B+Tree 的查询性能是比较高的,所以建立索引能提升 SQL 的查询性能。 1、建立普通索引 对经常出现在 where 关键字后面的表字段建立对应的索引。 2、建立复合索引 如果 where 关键字后面常出现的有几个字段,可以建立对应的 复合索 ...
分类:
数据库 时间:
2020-07-06 16:17:03
阅读次数:
87
刚开始看到这道题的时候想的是线段树分治,毕竟这里的乘法和加法都是可以撤销的. 但是后来发现如果想要线段树分治的话就必须要满足交换律,但是标记 $(x,y)$ ( 乘 $x$ 后加 $y$)只满足结合律,不满足交换律. 那么就考虑 kdtree. kdtree 是维护平面上点的数据结构,然后我们可以把 ...
分类:
其他好文 时间:
2020-07-06 16:12:57
阅读次数:
46
前言 你好这里的一个删除,指的是如果删除的叶子节点则直接删除,如果删除的是非叶子节点,则删除的是这颗子树。 这样删除的场景并不多,这种删除方式了解即可。 十七和十六没有放树图,把树图放一下。 正文 节点模型: public class HeroNode { private int no; priva ...
分类:
编程语言 时间:
2020-07-06 15:54:08
阅读次数:
71
前言 树的前中后序遍历 是根据前中后序的顺序来查找,找到了则弹出。 正文 节点模型: public class HeroNode { private int no; private string name; private HeroNode left; private HeroNode right; ...
分类:
编程语言 时间:
2020-07-06 14:41:50
阅读次数:
69
前言 理论文章: 直接看百度百科。 这个比较简单,直接放c#代码。 正文 建立节点模型: public class HeroNode { private int no; private string name; private HeroNode left; private HeroNode righ ...
分类:
编程语言 时间:
2020-07-06 13:12:08
阅读次数:
80
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。 序列都可以进行的操作包括索引,切片,加,乘,检查成员。 此外,Python已经内置确定序列的长度以及确定 ...
分类:
编程语言 时间:
2020-07-06 12:45:06
阅读次数:
68
Python基本数据类型:字符串、 整数、 浮点数、 布尔值、 空值(None) List (列表): Python 内置的一种数据类型。 它是一种有序的集合,可以随时添加和删除其中的元素。 tuple (元组): 一旦初始化就不能修改。 也就是说元组(tuple)是不可变的,但是可以修改,比如元组 ...
分类:
编程语言 时间:
2020-07-06 11:00:19
阅读次数:
61
队列 概念 队列:是限只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 遵循先进先出原则,简称FIFO 线性表 —> 用数组或是链表来实现。 抽象数据类型 队列也有类似线性表的各种操作,不同的是 插入数据只能在队尾进行 删除数据只能在队头进行 实际场景:银行叫号排队 数组模拟队列 思路分析 ...
分类:
其他好文 时间:
2020-07-06 01:02:49
阅读次数:
57