原创 07 哨兵機制:主庫掛了,如何不間斷服務

本篇重點 哨兵機制的“監控”、“選主”、“通知” 0.0 背景 主從庫採取“讀寫分離”模式,主庫掛了,Redis讀操作可以由從庫執行,但寫操作智能由主庫執行後同步給從庫,一旦主庫掛了,寫服務終端,從庫無法進行數據同步 解決方案:運行新

原创 06 數據同步:主從庫如何實現數據一致

本篇重點 主從庫同步原理、如何應對主從庫間網絡斷連風險 主從庫同步:全量複製、基於長連接的命令傳播、增量複製——應對主從庫間的網絡斷連 背景 若Redis只有一個實例運行,當該實例服務宕機後,宕機這段時間內Redis無法爲新來的數據

原创 操作系統(一)操作系統歷史:從標準函數庫到雲計算

操作系統的發展的推動因素:硬件成本的不斷下降(CPU、內存等)、計算機功能和複雜性的不斷變化(批處理、多道程序設計、分時、網絡等)、操作系統需要維護自身安全(和攻擊者"黑客"之間的博弈) 本篇導航 狀態機操作系統 第一階段:SOSC——

原创 05 RDB(內存快照:宕機後,Redis如何實現快速恢復)

本篇重點 “對哪些數據做快照?”——關係到快照的執行效率問題 “做快照時,數據還能被增刪改嗎?”——關係到Redis主線程是否被阻塞,同時是否正常處理請求 前言 RDB: Redis DataBase,記錄Redis運行中某一時刻的內

原创 04 AOF日誌:宕機了,Redis如何避免數據丟失

接下來兩篇將記錄Redis持久化存儲兩大技術:AOF日誌、RDB快照 本篇重點 “AOF日誌實現”“AOF日誌三種寫回策略”“AOF重寫——避免日誌過大的解決方案” 前言 Redis持久化存儲兩大技術:AOF日誌、RDB快照 AOF:

原创 03 高性能IO模型:採用多路複用機制的“單線程”Redis

本篇重點 三個問題: “Redis真的只有單線程嗎?”“爲什麼用單線程?”“單線程爲什麼這麼快?” “Redis真的只有單線程嗎?” 否,“單線程”指的是Redis的網絡IO和鍵值對讀寫是由一個線程完成的[1] Redis的其他功

原创 02 Redis的數據結構

Redis——“快”:μs速度找到KV並完成操作。依賴於 a. 內存 b. 數據結構 6種底層數據結構 & 5種Redis數據類型 Redis的“快”中的“慢操作” KV用哈希表存儲,哈希表結構=數組+哈希桶 哈

原创 01 鍵值數據庫的基本架構

本篇重點:通過SimpleKV瞭解KV數據庫的基本架構 Redis: 鍵值DB 從SimpleKV入手學習Redis SimpleKV Redis 數據模型 key:value組成的KV鍵值對key-type: String

原创 關於高考填報志願這件事

2021.6.26 關於高考填報志願這件事我給妹妹的建議 前言 距離高考結束差不多二十天的時間,前兩天妹妹給我發消息說她沒考好,然後高出一本線六十多分。然後對我說發現自己不會騙人。emmm。之後問了妹妹喜歡的專業,數字媒體藝術,聽到妹妹有自

原创 PlantUML --- 使用代碼快速繪製時序圖、思維導圖

本篇思維導圖 @startmindmap <style> mindmapDiagram { .green { BackgroundColor lightgreen } .rose { BackgroundColo

原创 Linux常用命令小結(一)Vim使用篇

模式與模式切換 vim下4種模式:normal、insert、command、visual normal:正常模式,終端輸入vim進入的就是這個模式。 insert:插入模式,即編輯模式,這個模式下可以進行編輯。i或者o都可以進入這個模式。

原创 正則表達式(一)分組捕獲和反向引用

前言:今天有一個小插曲,需要將某一目錄下所有文件名中 xxx_collect_xxx 中的 collect 修改爲 mapping_mrg ,還好我要修改的只有四個,但重複的4次mv命令還是讓人頭大,所以就考慮有沒有什麼方法可以一次性修改這

原创 Cron是什麼?利用Cron Job自動執行定時任務

原文鏈接 : Cron是什麼?利用Cron Job自動執行定時任務 – 草根SEO博客 (simcf.cc) Cron Cron是一個實用程序,用於在特定的時間自動執行重複任務。在Linux中,常用 cron 服務器來完成這項工作,以下是C

原创 C#Process調用外部程序

前言 使用C#調用外部程序,一種是通過Process類,一種是通過命令行,本文主要說一下使用C#中的Process類調用外部程序的方式。 過程: 1. 創建Process對象 2. 配置啓動選項(輸入、輸出等) 3. 切換工作目錄 4. 設

原创 IO模式 select、poll、epoll

阻塞(blocking)、非阻塞(non-blocking):最常聽到阻塞與非阻塞這兩個詞就是在函數調用中,比如waitid這個函數,通過NOHANG參數可以把waitid設置爲非阻塞的,也就是問詢一遍子進程,看看有沒有可回收子進程,如果沒