性能測試 Case1:求數(shù)據(jù)集中某個(gè)字段的最大值 benchmark 結(jié)果如下 從上圖可以看出,常規(guī)方法的速度是 linq 的110倍左右,linq進(jìn)行了大量的內(nèi)存分配操作,...
性能測試 Case1:求數(shù)據(jù)集中某個(gè)字段的最大值 benchmark 結(jié)果如下 從上圖可以看出,常規(guī)方法的速度是 linq 的110倍左右,linq進(jìn)行了大量的內(nèi)存分配操作,...
原理 守護(hù)進(jìn)程(daemon) 守護(hù)進(jìn)程是一類在后臺(tái)運(yùn)行的特殊進(jìn)程,用于執(zhí)行特定的系統(tǒng)任務(wù)。他獨(dú)立于控制終端并且周期性的執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。Linux系統(tǒng)的...
業(yè)務(wù)使用Redis做緩存,當(dāng)有數(shù)據(jù)更新時(shí),如何保證緩存及時(shí)更新 讀數(shù)據(jù)流程 請(qǐng)求到來,業(yè)務(wù)代碼會(huì)先查Redis,查不到再去查DB,并將結(jié)果寫入Redis 寫數(shù)據(jù)方案 1. 先...
單實(shí)例往往不能滿足生產(chǎn)環(huán)境的需求,需要引入Redis集群,比較常見的Redis集群方案有主從復(fù)制、哨兵模式、官網(wǎng)的Redis Cluster,另外還有一些Proxy模式,各大...
什么是熱點(diǎn)key? 對(duì)于web應(yīng)用來說,用戶消費(fèi)的數(shù)據(jù)遠(yuǎn)遠(yuǎn)大于生產(chǎn)的數(shù)據(jù),大多人使用都只是進(jìn)行瀏覽,少數(shù)的人才會(huì)進(jìn)行評(píng)論。對(duì)于web服務(wù)來說,某些熱門的內(nèi)容,讀請(qǐng)求的量級(jí)可能...
什么是協(xié)程? 進(jìn)程和線程 一個(gè)應(yīng)用程序時(shí)運(yùn)行在操作系統(tǒng)上的一個(gè)進(jìn)程。進(jìn)程是一個(gè)運(yùn)行在自己獨(dú)立內(nèi)存空間的獨(dú)立執(zhí)行體,是操作系統(tǒng)進(jìn)行資源分配的最小單位。一個(gè)進(jìn)程則有一個(gè)或多個(gè)線程...
全局唯一ID要求 分布式系統(tǒng)中,我們會(huì)對(duì)一些數(shù)據(jù)量大的業(yè)務(wù)進(jìn)行拆分,如用戶表、訂單表,當(dāng)數(shù)據(jù)量巨大導(dǎo)致數(shù)據(jù)庫性能下降時(shí),通常會(huì)進(jìn)行分庫分表,無法利用MySQL的自增ID,那么...
基本概念說明 理解Linux的IO模型之前,首先要了解一些基本概念,才能理解這些IO模型設(shè)計(jì)的依據(jù) 用戶空間和內(nèi)核空間 操作系統(tǒng)使用虛擬內(nèi)存來映射物理內(nèi)存,對(duì)于32位的操作系...
MySQL是如何進(jìn)行排序的? 假設(shè)有一個(gè)表t結(jié)構(gòu)如下圖所示: id為主鍵,type上建有索引,那么如果要查類型為1,val最小的1000行,那么SQL語句如下:SELECT ...
我們知道HTTP協(xié)議是無狀態(tài)的,那么在Web開發(fā)中如何做好用戶的整個(gè)瀏覽過程的控制,最經(jīng)典的解決方案就是使用Cookie和Session。Cookie是客戶端的機(jī)制,把用戶數(shù)...
基本概念 WebSocket是一種網(wǎng)絡(luò)通信協(xié)議,是HTML5新增的特性,實(shí)現(xiàn)了基于瀏覽器的遠(yuǎn)程socket,使瀏覽器和服務(wù)器可以進(jìn)行全雙工通信,大部分瀏覽器都對(duì)此做了支持。W...
什么是臟頁? InnoDB在處理更新語句時(shí),先寫內(nèi)存再寫redo log,并不會(huì)立即將數(shù)據(jù)頁的更新落地到磁盤(WAL機(jī)制),這就會(huì)產(chǎn)生升內(nèi)存數(shù)據(jù)頁和磁盤數(shù)據(jù)頁的數(shù)據(jù)不一致的情...
Socket如何通信 在網(wǎng)絡(luò)中要唯一確定一個(gè)進(jìn)程需要用一個(gè)三元組(Protocol,IP,Port),IP地址唯一確定一臺(tái)主機(jī),再通過協(xié)議和端口唯一確定一個(gè)進(jìn)程,這里也可以看...
Thrift架構(gòu)簡介 Thrift自頂向下可分為四層 Server(single-threaded, event-driven)服務(wù)器進(jìn)程調(diào)度 Processor(compi...
nginx是一個(gè)開源的高性能web服務(wù)器或反向代理服務(wù)器。 基本架構(gòu) 多進(jìn)程模型 nginx啟動(dòng)后會(huì)產(chǎn)生一個(gè)master進(jìn)程和多個(gè)worker進(jìn)程。master進(jìn)程主要來管理...