小破站,记录和学习
Redis的数据结构 Redis的数据结构
在看Redis的一些底层数据结构实现时,想到一个以前没有关注过的问题,就是Redis是如何把数据分配到集群中的每一个节点的。我们知道Redis用Cluster模式部署下,数据是分布式存储的,假设客户端随机请求到集群中的一台Redis服务,而
2022-06-12
红黑树的翻转 红黑树的翻转
红黑树(R-B Tree),它是二叉树中,最经典也是最复杂的数据结构。也是一种常见的自平衡二分搜索树。说到自平衡就涉及到旋转,这是红黑树最难的地方之一。我在一开始接触时也是云里雾里,不知道为什么红黑树相比普通的二叉树要设置这么多条件,更别说
2022-06-06
select与epoll select与epoll
select与epoll是操作系统提供的两种I/O多路复用的机制,I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。select是比较早出现的技术,但是
2022-06-05
Java的反射与动态编译 Java的反射与动态编译
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。这种技术在一些开源框架中使用非常广泛,
2022-06-05
对于类加载的一点理解 对于类加载的一点理解
当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以
2022-06-02
LeetCode-最长公共子序列 LeetCode-最长公共子序列
力扣上一道中等题,求两个字符串的最长公共子序列。说实话这道题我完全没有思路,一开始尝试用双指针去遍历两个数组,但是公共子序列可以是不连续的,这样情况就会变得很复杂。在和力扣度过美好的一天后,我最终放弃了。看完题解后,茅塞顿开。故此记录一下思
2022-05-31
存储引擎的MVCC机制 存储引擎的MVCC机制
MVCC全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。对存储引擎的MVCC机制,早有涉猎学习。但如果在工作中生活中没有足够的经历,其实很难对它有深入的理解。为什么要
2022-05-26
Mysql存储引擎总结 Mysql存储引擎总结
SQL的全称是Structured Query Language,翻译成中国话就是结构化查询语言。这是一种声明式的语法,和其它数据库相比,MySQL 有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,
2022-05-15
图灵机与冯诺依曼模型 图灵机与冯诺依曼模型
图灵机是─种抽象的机器,一种抽象的计算模型。由数学家阿兰·图灵提出来的,尽管这个机器很简单,但它可以模拟计算机的任何算法,无论这个算法有多复杂。 当今的计算机都是图灵机的实现,要想知道程序执行的原理,我们可以先从「图灵机」的工作原理说起,图
2022-05-04
线程间的通信 线程间的通信
在Java中线程之间通信一般使用共享变量的方式,用同步锁来实现。在Golang中不推荐使用共享变量的方式,而是更多使用管道来实现信息同步。本文总结一下在Java中线程间通信的方式 要实现线程间通信的模型有两种:共享内存和消息传递,以下方式
2022-05-02
详细解读Raft共识算法 详细解读Raft共识算法
业界最著名的一致性算法就是大名鼎鼎的Paxos(Chubby的作者曾说过:世上只有一种一致性算法,就是Paxos)。但Paxos是出了名的难懂,而Raft正是为了探索一种更易于理解的一致性算法而产生的。Raft是分布式环境下的一致性算法,它
2022-05-01
布隆过滤器详解 布隆过滤器详解
布隆过滤器在wiki上的介绍: 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般
2022-04-17
2 / 16