原创 圖解七大排序算法

“排序是計算機的核心內容。事實上,從很多方面看,如果沒有排序,計算機就不會變成現實。” 《算法之美:指導工作與生活的算法》   排序算法,或許是我們日常最常見也是使用頻率最多的算法。比如你在電商網站買東西,推薦商品往往基於相似度或者基

原创 圖解最長公共子序列LCS問題

  很多人在上學的時候都有過對畢業論文進行查重的經歷,一般可以通過CNKI,知網等平臺提交自己的論文,平臺將論文與其他論文進行匹配查重,最終得到一個相似度。不知大家對於查重問題有沒有思考過,他背後是如何實現的呢?難道就是找到相似的字符串匹

原创 紅黑樹的設計與實踐

本文主要介紹以下五個方面,通過本文可以大致掌握紅黑樹的基礎知識,並且有助於你在現實場景中根據需要選擇合適的數據結構。 什麼是紅黑樹? 紅黑樹與哈希表的區別 如何構造紅黑樹? 紅黑樹在DNS數據存儲中的應用 其他

原创 三種字符串查找算法的Go實現

原文轉載自我的個人網站 zhangmingkai.cn ,歡迎大家訪問。 字符串查找就是給定一段文字,查找所有包含特定單詞的方式,當我們使用網站瀏覽信息的時候,用Ctr+F搜索網頁, 或在linux上使用grep查詢日誌文件中

原创 關於一個子集判斷函數的性能分析

最近遇到一個需求,需要做基於日誌標籤的實時分發,基本原理是一條日誌傳遞到程序後,系統採集該日誌的標籤屬性,跟後臺的預定義的多個規則標籤集合進行匹配,如果Ok則將規則與該日誌綁定,等待後期的處理。 比如一條業務日誌具有標籤: dns

原创 關於無線wifi系統搭建的設計與實施-1

項目需求:搭建一套部門訪客使用的WIFI系統,短信驗證碼登陸,系統OA人員可追蹤用戶使用時間和時段,並能夠獲得單個用戶訪問網站的部分非敏感信息,如URL信息。首先作爲一個完整的項目,已實施完成。開通博客後,想將之前的工作內容做一次總結。寄

原创 Ubuntu搭建web環境安裝sendmail無法實現(已解決)

安裝sendmail是若出現大量的 insserv: Starting php5-fpm depends on grub-common and therefore on system facility `$all' which can

原创 FTP批量下載

首先關閉交互模式: ftp> promInteractive mode off. 這樣每次下載完一個不用確認既可以下載下一個文件 ftp> promftp> mget *    或  mput *     

原创 使用Golang的Context管理上下文的方法

這篇文章主要介紹了使用Golang的Context管理上下文的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧 golang 1.7版本中c

原创 談Go語言中併發Map的使用

最近開發Go語言總是遇到哈希表的使用,在高併發下如何保證讀寫的安全性尤爲重要,假如不瞭解的情況下,使用原生map的話,性能倒是很高,但在多個goroutine操作下就會遇到併發讀寫的錯誤出現。爲了併發安全,修改讀寫訪問,每次都寫都

原创 使用Go語言完成文件夾的MD5計算

案例需求:我們的監測系統會定期的檢查配置文件的變動,這些配置文件放置在一個獨立的文件夾下面,我們可以通過對於整個的文件夾內所有文件進行md5的計算來完成監測,本文就通過Go語言實現了一個命令行工具,完成上述的需求。 1. 單一文件的md5

原创 Prometheus AlertManager代碼閱讀筆記

AlertManager用於接收Prometheus發送的告警並對於告警進行一系列的處理後發送給指定的用戶。系統的整體設計圖如下面所示,並且支持HA高可用部署。 AlertManager接收告警 Prometheus或者告警發送系統可以

原创 Golang日誌庫glog源碼閱讀筆記

glog包是google推出的一個golang的日誌庫,提供豐富的接口函數,提供不同級別的日誌寫入和日誌文件的輪轉,可將日誌打印到終端或者寫入到指定的路徑文件中。本篇blog主要是包含了如何使用glog以及源代碼中的一些片段筆記。 如何使

原创 bolt:一個純Go實現的KV數據庫

簡介 bolt是一個純go語言實現的鍵值數據庫,支持完全的ACID實務操作,儘管不像SQLite那樣有完善的查詢語言,但是接口簡單易用。bolt本身通過使用一個內存映射的磁盤文件來管理數據,邏輯清晰,接口簡單易用。下面代碼就是bolt提供

原创 Prometheus AlertManager代碼閱讀筆記 Notify組件

Notify組件定義了路由處理過程中的receiver pipeline(本文不包含Silence和Inhibit部分), 包含等待間隔的WaitState,去重處理DedupStage,重試處理RetryStage和SetNotifyS