原创 7張圖瞭解kafka基本概念

kafka是apache基金會管理的開源流處理平臺(官網http://kafka.apache.org/),但國內大多數人對其認知基本都是消息隊列,所以我們先來了解下什麼是消息隊列。 消息隊列 消息隊列顧名思義就是存儲消息的一個隊列,消息

原创 如何寫好技術文檔——來自Google十多年的文檔經驗

本文大部分內容翻譯總結自《Software Engineering at Google》 第10章節 Documentation。 另外,該書電子版近日已經可以免費下載了 https://abseil.io/resources/swe_a

原创 30行代碼實現朋友圈自動點贊

首先祝大家新年快樂,過年了,允許我水一篇博客。不知道大家都回老家了沒,不過我是沒有回去,晚上喫完年夜飯看到很多人發朋友圈,爲了增進和大家的友誼,於是就想着給大家點個贊,無奈內容太多了,就搞個自動化腳本,原理和前兩天我寫的30行代碼實現螞蟻森

原创 30行代碼實現螞蟻森林自動偷能量

@目錄Uiautomator2的安裝和使用具體實現如何打開支付寶並進入螞蟻森林?收能量如何停止完整代碼結語 雖然我支付寶加了好多好友,平時有很多能量可以偷,但由於太懶,至今一棵樹都沒種成,所以心心念念把偷能量這事自動化。之前通過用代碼模擬手

原创 Redis源碼剖析之數據過期(expire)

我之前統計過我們線上某redis數據被訪問的時間分佈,大概90%的請求只會訪問最新15分鐘的數據,99%的請求訪問最新1小時的數據,只有不到千分之一的請求會訪問超過1天的數據。我們之前這份數據存了兩天(近500g內存數據),如果算上主備的話

原创 [翻譯]正則引擎的幾種分類

原文鏈接http://www.softec.lu/site/RegularExpressions/RegularExpressionEngines 正則表達式引擎是正則表達式匹配算法的基礎。其有多種不同的實現,但大多數都是基於Henry

原创 Redis源碼剖析之robj(redisObject)

我們在之前的文章中已經瞭解過一部分Redis的數據結構了,尤其是dict 中講到,可以把redis看做一個hashtable,存儲了一堆的key-value,今天就來看下key-value中value的主要存儲結構redisObject(後

原创 XINDOO的2020總結

對於大多數人來說,2020年啥也沒幹,就光見證歷史了。前一段時間華盛頓郵報向讀者徵集如何描述2020年,一個九歲小孩拔得頭籌。 過馬路前你左右都看了,結果被潛水艇給撞了。 一句簡單的調侃卻道出了這一年的魔幻。 記得武漢封城那天晚上,我正

原创 Redis源碼剖析之字典(dict)

Dict在redis中是最爲核心的一個數據結構,因爲它承載了redis裏的所有數據,你可以簡單粗暴的認爲redis就是一個大的dict,裏面存儲的所有的key-value。 redis中dict的本質其實就是一個hashtable,所以它也

原创 Redis源碼剖析之跳錶(skiplist)

最近要換新工作了,藉着新老工作交替的這段窗口放鬆了下,所以專欄拖更了,不過我心裏毫無愧疚,畢竟沒人催更。 不過話說回來天天追劇 刷綜藝的日子也很是枯燥,羨慕你們這些正常上班的人,每天都有正經工作內容,感覺你們過的很充實。[狗頭] 計算機

原创 面試題精選:神奇的斐波那契數列

斐波那契數列,其最開始的幾項是0、1、1、2、3、5、8、13、21、34…… ,後面的每一項是前兩項之和,事實上,斐波那契在數學上有自己的嚴格遞歸定義。 f0 = 0 f1 = 1 f(n) = f(n-1) + f(n-2) 斐波那

原创 awk實現類sql的join操作

awk、grep和sed被稱爲linux三劍客,事實上grep和awk我在日常工作中也常用到(sed用的比較少),可能有些人對awk瞭解比較少,我先大概介紹下。 很多人以爲awk只是一個文本處理工具,實際上他們也是這麼用的。但事實上它其實是

原创 [翻譯]CAP理論及其證明

CAP是所有分佈式系統的基礎理論,任何分佈式系統只能滿足以下三種狀態中的任意兩種。 一致性(Consistency) 可用性(Availability) 分區容錯性(Partition tolerance) 何爲CAP理論? CAP理論

原创 今年是冷冬?我爬了北京10年的氣溫,喲 還真是!

WARNING: 非嚴謹氣相數據分析,旨在表達數據分析過程,結論還是看看就好,更嚴謹的信息請查閱專業的氣相資料。 10月份的北京,彷彿酷熱的夏季戛然而止,然後變成了春夏秋冬隨機播放的模式,與往年不同的是今年很多人都在說“今年比去年冷多

原创 Redis源碼剖析之快速列表(quicklist)

@目錄數據結構quicklistquicklistNodequicklist的操作創建頭插和尾插特定位置插入數據刪除其他API參考資料 何爲quicklist,上次說到ziplist每次變更的時間複雜度都非常高,因爲必須要重新生成一個新的z