Twemproxy 是 Twitter 的一个开源架构,它是一个分片资源访问的代理组件。如下图所示,它可以封装资源池的分布及 hash 规则,解决后端...
设计足够可靠的分布式缓存体系,以满足大中型移动互联网系统的需要
传统 CAP 的突破随着分布式系统的不断演进,会不断遇到各种问题,特别是当前,在大中型互联网系统的演进中,私有云、公有云并行发展且相...
理解浏览器中的 EventLoop
我会先讲解浏览器端的 Eventloop 的运行机制,待你对浏览器端有了一定的理解之后,再带你设计一些 Node.js 的 Eventloop 的底层逻辑...
选择并使用Redi的核心数据类型
首先,来看一下 Redis 的核心数据类型。Redis 有 8 种核心数据类型,分别是 :string 字符串类型;list 列表类型;set 集合类型;...
Proce.nextTick 的原理
这一讲我除了结合上一讲说的究宏任务和微任务的运行机制外,还将通过一些代码片段来带你研究 Process.nextick 的执行逻辑,帮你把这块知...
Generator、Ayncawait 等异步编程的语法糖
Generator 是 ES6 标准中的异步编程方式,而 async/await 是 ES7 标准中的。希望通过本讲的学习,你能对这两种编程方式有更深的理解...
构建一个简单的 RESTful 服务
基础技术点在学习本讲时会涉及一些技术知识点:什么是 RESTful 规范;数据库的读写处理过程;目前常用的 MVC 架构模式,以及后续本专栏...
构建一个高性能、易扩展的Redi集群
Client 端分区方案就是由 Client 决定数据被存储到哪个 Redis 分片,或者由哪个 Redis 分片来获取数据。它的核心思想是通过哈希算法...
根据业务来选择缓存模式和组件
Cache Aside 模式中,业务应用方对于写,是更新 DB 后,直接将 key 从 cache 中删除,然后由 DB 驱动缓存数据的更新;而对于读,...
大幅成倍提升Redi处理性能
Redis 自问世以来,广受好评,应用广泛。但相比, Memcached 单实例压测 TPS 可以高达百万,线上可以稳定跑 20~40 万而言,Redis ...
内存检查:多种类型的内存泄漏分析方案
内存泄漏内存泄漏(Memory Leak)是指程序中已动态分配的堆内存,由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速...
哪些因素会影响 Node.js 性能?
Node.js 作为后台服务性能是非常关键的一点,而影响 Node.js 的性能不仅仅要考虑其本身的因素,还应该考虑所在服务器的一些因素。前面我...
面对海量数据,为什么无法设计出完美的分布式缓存体系?
随着互联网的发展,分布式系统变得越来越重要,当前的大中型互联网系统几乎都向着分布式方向发展。分布式系统简单说就是一个软硬件分布在不...
缓存数据不一致和并发竞争怎么处理?
七大缓存经典问题的第四个问题是数据不一致。同一份数据,可能会同时存在 DB 和缓存之中。那就有可能发生,DB 和缓存的数据不一致。如果...
缓存失效、穿透和雪崩问题怎么处理?
前面讲解了缓存的原理、引入,以及设计架构,总结了缓存在使用及设计架构过程中的很多套路和关键考量点。实际上,在缓存系统的设计架构中,...
缓存,你真的用对了吗?
我是资深老码农一枚,经历了新浪微博从起步到当前月活数亿用户的大型互联网系统的技术演进过程,现任新浪微博技术专家。我于 2008 年加入...
函数那些事:JS 闭包难点剖析
JavaScript 中的闭包是相当重要的概念,并且与作用域相关知识的指向密切相关,在大厂的前端面试过程中经常会被提及。因此希望通过这一讲的...
工具应用:使用 clinicj 工具实现通用性安全检查
clinicjs 是一个 Node.js 的第三方工具,clinicjs 官网介绍了其核心的目的是,帮助诊断和查明 Node.js 性能问题的工具。那么它具体能...
高并发设计必须学的知识点有哪些?
对于单个服务或者单个接口,我们学习了在 Node.js 中要着重注意的 5 个高性能点。主线程避阻塞,特别是一些复杂 CPU 密集计算型,最...
多进程解决方案:cluter 模式以及 PM2 工具的原理介绍
前几讲我们都使用了一种非常简单暴力的方式(node app.js)启动 Node.js 服务器,而在线上我们要考虑使用多核 CPU,充分利用服务器资源...