二叉树

“二叉树” 二叉树 (Binary Tree) 二叉树 (Binary Tree) 是包含n个节点的有限集合,该集合或者为空集 (此时,二叉树称为空树) ,或者由一个根节点和

redis pipeline

“redis pipeline” why pipeline ? Redis 客户端与 server 的请求/响应模型 前面的文章 Redis 底层协议RESP详解 ,介绍到 redis 客户端与 redis-server 交互通信,采用的 TCP 请求/响应模型; 我们通过 Redis 客户端

Cuckoo filter, 布谷过滤器

“Cuckoo filter, 布谷过滤器” 过滤器系列 (二) —— Cuckoo filter 这一篇讲的是布谷过滤器(cuckoo fliter),这个名字来源于更早发表的布谷散列(c

Vim光标移动

Vim 光标移动 搜索结果之间跳转 文件之间移动 Vim 最大的特征与最大的困难就是键盘操作,所以快速移动光标是 Vim 的最基本技能。光标移动可以配合其他快捷键使用

延时队列

“延时队列” https://zhuanlan.zhihu.com/p/266156267 延迟队列 首先,队列这种数据结构相信大家都不陌生,它是一种先进先出的数据结构。普通队列中的元素是有序的,

redis scan

“redis scan” redis用scan代替keys 众所周知,当redis中key数量越大,keys 命令执行越慢,而且最重要的会阻塞服务器,对单线程的red

gcm cbc

“gcm cbc” 主要区别 AES-GCM可以并行加密解密,AES-CBC的模式决定了它只能串行地进行加密。因为加密是耗时较久的步骤,且加密的方式是相同的,

Reactor, Dispatcher 模式

Reactor / Dispatcher 模式 了解 Reactor 模式,就要先从事件驱动的开发方式说起。 我们知道,服务器开发,CPU 的处理速度远高于 IO 速度,为了避免 CPU 因为 IO 而阻塞,好一点的方

distributed lock 分布式锁

distributed lock 分布式锁 分布式是一种分布式协调技术,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了

MESI

“MESI” CPU 在执行指令的时候需要从 memory 中获取指令和需要的数据,但是 CPU 的速度要比 memory 快很多,这就导致了 CPU 大部分时间都不是在做运算上而是用在了和 memory 进行数据的

Store Buffer

“Store Buffer” 就像spinlock的进化史,软件工程师会对自己的代码做足够的优化以提高性能。同样,硬件工程也不甘示弱,尽最大的努力设计硬件以获取更好的

Memory Barrior, 内存屏障

“Memory Barrior, 内存屏障” 屏障技术 内存屏障技术是一种屏障指令,它可以让 CPU 或者编译器在执行内存相关操作时遵循特定的约束,目前多数的现代处理器都

文件锁

“文件锁” 文件锁也被称为记录锁,文件锁如果深讲的话,内容不少 (比如文件锁最起码分为了建议锁和强制性锁) 这里不准备深纠

拜占庭将军问题

“拜占庭将军问题” 接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某某区块链使用某某算法解决了拜占庭将军

Gossip

“Gossip” Gossip是什么 Gossip协议是一个通信协议,一种传播消息的方式,灵感来自于: 瘟疫、社交网络等。使用Gossip协议的有: Redis Clust

failover, failfast, failback, failsafe

“failover, failfast, failback, failsafe” failover: 失效转移/故障转移 故障转移(fail-over) Fail-Over 的含义为“失效转移”,是一种备份操作模式,当主要组件异常时,其功能转移到备份组件

taskset

“taskset” 一、在Linux上修改进程的“CPU亲和力” 在Linux上,可以通过 taskset 命令进行修改。以Ubuntu为例,运行如下命令可以安装taskset

HyperLogLog

“HyperLogLog” HyperLogLog HyperLogLog,下面简称为HLL,它是 LogLog 算法的升级版,作用是能够提供不精确的去重计数。 127.0.0.1:6379> PFADD language "PHP" "Python" "Perl" "Ruby" (integer) 1 127.0.0.1:6379> PFCOUNT language (integer) 4 127.0.0.1:6379> PFADD language "PHP" # Redis 已

redis bitmap

“redis bitmap” BitMap https://www.cnblogs.com/54chensongxia/p/13794391.html BitMap# BitMap 原本的含义是用一个比特位来映射某个元素的状态。由于一个比特位只能表示 0 和 1 两种状态,所以 BitMap 能映射的状态有限,但是使用比特位的优势