二叉树2021-07-25Data-Structure“二叉树” 二叉树 (Binary Tree) 二叉树 (Binary Tree) 是包含n个节点的有限集合,该集合或者为空集 (此时,二叉树称为空树) ,或者由一个根节点和Read more...
redis pipeline2021-07-24redis“redis pipeline” why pipeline ? Redis 客户端与 server 的请求/响应模型 前面的文章 Redis 底层协议RESP详解 ,介绍到 redis 客户端与 redis-server 交互通信,采用的 TCP 请求/响应模型; 我们通过 Redis 客户端Read more...
Cuckoo filter, 布谷过滤器2021-07-24inbox“Cuckoo filter, 布谷过滤器” 过滤器系列 (二) —— Cuckoo filter 这一篇讲的是布谷过滤器(cuckoo fliter),这个名字来源于更早发表的布谷散列(cRead more...
Vim光标移动2021-07-22EditorVim 光标移动 搜索结果之间跳转 文件之间移动 Vim 最大的特征与最大的困难就是键盘操作,所以快速移动光标是 Vim 的最基本技能。光标移动可以配合其他快捷键使用Read more...
延时队列2021-07-21Data-Structure“延时队列” https://zhuanlan.zhihu.com/p/266156267 延迟队列 首先,队列这种数据结构相信大家都不陌生,它是一种先进先出的数据结构。普通队列中的元素是有序的,Read more...
redis scan2021-07-21Inbox“redis scan” redis用scan代替keys 众所周知,当redis中key数量越大,keys 命令执行越慢,而且最重要的会阻塞服务器,对单线程的redRead more...
gcm cbc2021-07-17inbox“gcm cbc” 主要区别 AES-GCM可以并行加密解密,AES-CBC的模式决定了它只能串行地进行加密。因为加密是耗时较久的步骤,且加密的方式是相同的,Read more...
Reactor, Dispatcher 模式2021-07-11patternReactor / Dispatcher 模式 了解 Reactor 模式,就要先从事件驱动的开发方式说起。 我们知道,服务器开发,CPU 的处理速度远高于 IO 速度,为了避免 CPU 因为 IO 而阻塞,好一点的方Read more...
distributed lock 分布式锁2021-07-11lockdistributed lock 分布式锁 分布式是一种分布式协调技术,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了Read more...
MESI2021-07-10inbox“MESI” CPU 在执行指令的时候需要从 memory 中获取指令和需要的数据,但是 CPU 的速度要比 memory 快很多,这就导致了 CPU 大部分时间都不是在做运算上而是用在了和 memory 进行数据的Read more...
Store Buffer2021-07-10inbox“Store Buffer” 就像spinlock的进化史,软件工程师会对自己的代码做足够的优化以提高性能。同样,硬件工程也不甘示弱,尽最大的努力设计硬件以获取更好的Read more...
Memory Barrior, 内存屏障2021-07-09cs“Memory Barrior, 内存屏障” 屏障技术 内存屏障技术是一种屏障指令,它可以让 CPU 或者编译器在执行内存相关操作时遵循特定的约束,目前多数的现代处理器都Read more...
编译器指令重排, Compiler Instruction Reordering2021-07-09Inbox编译器指令重排, Compiler Instruction Reordering compiler的主要工作就是将对人们可读的源码转化成机器语言,机器语言就是对CPU可读的代码。因此,compilerRead more...
Gossip2021-07-06inbox“Gossip” Gossip是什么 Gossip协议是一个通信协议,一种传播消息的方式,灵感来自于: 瘟疫、社交网络等。使用Gossip协议的有: Redis ClustRead more...
failover, failfast, failback, failsafe2021-07-06inbox“failover, failfast, failback, failsafe” failover: 失效转移/故障转移 故障转移(fail-over) Fail-Over 的含义为“失效转移”,是一种备份操作模式,当主要组件异常时,其功能转移到备份组件Read more...
taskset2021-07-06inbox“taskset” 一、在Linux上修改进程的“CPU亲和力” 在Linux上,可以通过 taskset 命令进行修改。以Ubuntu为例,运行如下命令可以安装tasksetRead more...
HyperLogLog2021-07-06inbox“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 已Read more...
redis bitmap2021-07-06inbox“redis bitmap” BitMap https://www.cnblogs.com/54chensongxia/p/13794391.html BitMap# BitMap 原本的含义是用一个比特位来映射某个元素的状态。由于一个比特位只能表示 0 和 1 两种状态,所以 BitMap 能映射的状态有限,但是使用比特位的优势Read more...