從存儲(chǔ)方式和效率來看,文件系統(tǒng)高于KV存儲(chǔ),KV存儲(chǔ)又高于關(guān)系型數(shù)據(jù)庫,直接操作文件系統(tǒng)肯定是最快的,但可靠性是最低的,而關(guān)系型數(shù)據(jù)庫的性能和可靠性與文件系統(tǒng)恰恰相反。本章主...
從存儲(chǔ)方式和效率來看,文件系統(tǒng)高于KV存儲(chǔ),KV存儲(chǔ)又高于關(guān)系型數(shù)據(jù)庫,直接操作文件系統(tǒng)肯定是最快的,但可靠性是最低的,而關(guān)系型數(shù)據(jù)庫的性能和可靠性與文件系統(tǒng)恰恰相反。本章主...
RocketMQ支持3種消息發(fā)送方式:同步(sync)、異步(async)和單向(one way)。 同步:發(fā)送者向RocketMQ執(zhí)行發(fā)送消息API時(shí),同步等待,直到消息服...
分布式服務(wù)SOA架構(gòu)體系的服務(wù)注冊(cè)中心主要提供服務(wù)調(diào)用的解析服務(wù),指引服務(wù)調(diào)用方(消費(fèi)者)找到“遠(yuǎn)方”的服務(wù)提供者,完成網(wǎng)絡(luò)通信,那么RocketMQ的路由中心存儲(chǔ)的是什么數(shù)...
RocketMQ系列文集,作為《RocketMQ技術(shù)內(nèi)幕:RocketMQ架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理》學(xué)習(xí)筆記,用于記錄學(xué)習(xí)過程中的一些心得體會(huì),如有侵權(quán),請(qǐng)告知,必及時(shí)刪除。本文集...
1 對(duì)象和數(shù)據(jù)結(jié)構(gòu) 對(duì)象把數(shù)據(jù)隱藏于抽象之后,暴露操作數(shù)據(jù)的函數(shù);而數(shù)據(jù)結(jié)構(gòu)暴露其數(shù)據(jù),沒有提供有意義的函數(shù)。 比如有一個(gè)幾何類Geometry,過程式代碼如下所示: 想想看...
1 有意義的命名 1.1 名副其實(shí) 變量、函數(shù)或類的名稱應(yīng)該已經(jīng)答復(fù)了所有的大問題,她該告訴你,為什么存在,做什么事,應(yīng)該怎么用。如果名稱需要注釋來補(bǔ)充,那就不算是名副其實(shí)。...
1 界限上下文 限界上下文確實(shí)和劃分模塊、劃分子系統(tǒng)一樣,是一種分而治之的手段,可以起到分離關(guān)注點(diǎn)的作用。但限界上下文增加了一個(gè)要點(diǎn),就是,它的目的還在于維護(hù)概念一致性。正是...
本文作為學(xué)習(xí)筆記,內(nèi)容來自“極客時(shí)間”專欄《手把手教你落地DDD》,如有侵權(quán),請(qǐng)及時(shí)告知,必當(dāng)及時(shí)刪除。 1 聚合 聚合的兩個(gè)重要特征: 具有整體與部分的關(guān)系。舉個(gè)例子,有“...
本文作為學(xué)習(xí)筆記,內(nèi)容來自《極客時(shí)間》專欄《手把手教你落地 DDD》,如有侵權(quán)請(qǐng)告知,必定及時(shí)刪除。 2003 年,Eric Evans 寫了《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì):軟件核心復(fù)雜性應(yīng)...
重構(gòu)是很有價(jià)值的工具,但只有重構(gòu)還不行。要正確地進(jìn)行重構(gòu),前提是得有一套穩(wěn)固的測(cè)試集合,以幫我發(fā)現(xiàn)難以避免的疏漏。編寫優(yōu)良的測(cè)試程序,可以極大提高我的編程速度,也許這會(huì)違反許...
1 何為重構(gòu) 重構(gòu):對(duì)軟件內(nèi)部結(jié)構(gòu)的一種調(diào)整,目的是在不改變軟件可觀察行為的前提下,提高其理解性,降低其修改成本。重構(gòu)是為了讓代碼更容易理解,更易于修改。可觀察型為:用戶側(cè)關(guān)...
Redis 5.0.14 源碼地址:https://github.com/redis/redis/tree/5.0[https://github.com/redis/redi...
沒有整理源碼,不過也比較簡(jiǎn)單,很快就可以構(gòu)建好
認(rèn)證與授權(quán)(三):搭建授權(quán)、資源服務(wù)器本篇示例的結(jié)構(gòu)如圖所示: 客戶端向授權(quán)服務(wù)器請(qǐng)求令牌,授權(quán)服務(wù)器經(jīng)過認(rèn)證以后,將令牌返回給客戶端。 客戶端攜帶第1步返回的令牌,向資源服務(wù)器請(qǐng)求資源。 資源服務(wù)器向授權(quán)服務(wù)器...
本篇主要分三部分討論Redis主從復(fù)制的實(shí)現(xiàn)原理:主從復(fù)制過程、狀態(tài)機(jī)、源碼解析。Redis從節(jié)點(diǎn)使用了狀態(tài)機(jī)機(jī)制,來實(shí)現(xiàn)從節(jié)點(diǎn)不同狀態(tài)的切換,所以在解析源碼之前,會(huì)先討論下...
在 2020 年 5 月推出的 Redis 6.0 版本中,Redis 在執(zhí)行模型中還進(jìn)一步使用了多線程來處理 IO 任務(wù)。之前在:https://www.jianshu.c...
本文分析的Redis源碼是基于Redis 6.0的,Redis 6.0之前的代碼會(huì)稍微有些出入,但是整體流程大致類似。主要是為了后續(xù)分析Redis 6.0推出的多I/O線程實(shí)...
1. 操作系統(tǒng)基礎(chǔ) 1.1. fork 當(dāng)我們?cè)谝粋€(gè)程序的函數(shù)中調(diào)用 fork 函數(shù)時(shí),fork 函數(shù)會(huì)創(chuàng)建一個(gè)子進(jìn)程。而原本這個(gè)程序?qū)?yīng)的進(jìn)程,就稱為這個(gè)子進(jìn)程的父進(jìn)程。我...
@仍有不歸期 嗯嗯,是的
Redis數(shù)據(jù)案例二本文作為學(xué)習(xí)筆記,文章內(nèi)容來自“極客時(shí)間”專欄《Redis核心技術(shù)與實(shí)戰(zhàn)》,如有侵權(quán),請(qǐng)告知,必即時(shí)刪除。 1、統(tǒng)計(jì)一個(gè)網(wǎng)站的用戶訪問量 一個(gè)用戶一天內(nèi)的多次訪問只能算作一次...