原创 重溫算法Day27:搜索引擎4步曲

搜索引擎大致可以分爲四個部分:蒐集、分析、索引、查詢。 蒐集,就是我們常說的利用爬蟲爬取網頁。 們先找一些比較知名的網頁(專業的叫法是權重比較高)的鏈接(比如新浪主頁網址、騰訊主頁網址等),作爲種子網頁鏈接,放入到隊列中。 爬蟲按照廣度

原创 分佈式概念:分佈式計算(MapReduce、Stream、Actor、流水線)

Map Reduce 模式(Hadoop海量數據的處理) 核心思想:將一個複雜的、難以直接解決的大問題,分割成一些規模較小的、可以比較簡單的或直接求解的子問題,這些子問題之間相互獨立且與原問題形式相同,遞歸地求解這些子問題,然後將子問題的

原创 分佈式概念:分佈式緩存

緩存技術一般是指,用一個更快的存儲設備存儲一些經常用到的數據,供用戶快速訪問。分佈式緩存就是指在分佈式環境或系統下,把一些熱門數據存儲到離用戶近、離應用近的位置,並儘量存儲到更快的設備,以減少遠程數據傳輸的延遲。 Redis 分佈式緩存原

原创 分佈式概念:分佈式存儲

把數據分佈在多臺存儲節點上,可以爲大規模應用提供大容量、高性能、高可用、高擴展的存儲服務。而,分佈式存儲系統就是其具體實現。 分佈式存儲系統的核心,是將用戶需要存儲的數據根據某種規則存儲到不同的機器上,當用戶想要獲取指定數據時,再按照規則

原创 分佈式概念:分佈式互斥(臨界資源訪問)

分佈式互斥(Distributed Mutual Exclusion),被互斥訪問的共享資源就叫作臨界資源(Critical Resource)。 集中式算法: 每個程序在需要訪問臨界資源時,先給協調者發送一個請求。如果當前沒有程序使用這

原创 Go:動態的創建多個chan

讓chan作爲map的value。 The make(chan int, 2) part makes the channel buffered with a buffer length of 2.  package main impo

原创 重溫算法Day23:B+樹

樹中的節點並不存儲數據本身,而是隻是作爲索引。除此之外,我們把每個葉子節點串在一條鏈表上,鏈表中的數據是從小到大有序的。  如果我們要求某個區間的數據。我們只需要拿區間的起始值,在樹中進行查找,當查找到某個葉子節點之後,我們再順着鏈表往

原创 分佈式概念:分佈式選舉(選舉主節點)

分佈式選舉 主節點,在一個分佈式集羣中負責對其他節點的協調和管理。 分佈式選舉的算法序號選舉的算法( Bully 算法) 核心思想選取 ID 最大的節點作爲主節點。 在 Bully 算法中,節點的角色有兩種:普通節點和主節點。初始化時,所

原创 重溫算法Day24:位圖與布隆過濾器

位圖(BitMap) 位圖,就是用每一位來存放某種狀態,適用於大規模數據,但數據狀態又不是很多的情況。通常是用來判斷某個數據存不存在的。 位圖其實是用數組實現的,數組的每一個元素的每一個二進制位都可以表示一個數據在或者不在,0表示數據存在

原创 arangodb的aql邏輯判斷

arangodb的aql,如果做類似關係庫的case when操作,可以使用三目運算符,如下兩種case case1: FOR c IN clients RETURN { client: c.client, c.address: IS_

原创 Go-自定義Error

package common import ( "fmt" ) type ErrCode string var ( //common api err message SUCCESS ErrCode = "0"

原创 重溫算法Day21:跳錶

每兩個(三個、五個)結點提取一個結點到上一級,我們把抽出來的那一級叫作索引或索引層。你可以看我畫的圖。圖中的 down 表示 down 指針,指向下一級結點。 在第一級索引的基礎之上,每兩個(三個、五個)結點就抽出一個結點到第二級索引。鏈

原创 重溫算法Day22:拓撲排序

拓撲排序:有向無環圖 如果 a 先於 b 執行,也就是說 b 依賴於 a,那麼就在頂點 a 和頂點 b 之間,構建一條從 a 指向 b 的邊。而且,還要是一個有向無環圖,也就是不能存在像 a->b->c->a 這樣的循環依賴關係。 Kah

原创 重溫算法Day20:動態規劃

揹包問題 對於一組不同重量、不可分割的物品,我們需要選擇一些裝入揹包,在滿足揹包最大重量限制的前提下,揹包中物品總重量的最大值。 把整個求解過程分爲 n 個階段,每個階段會決策一個物品是否放到揹包中。 每個物品決策(放入或者不放入揹包)完

原创 重溫算法Day18:貪心算法

分糖果 我們有 m 個糖果和 n 個孩子。我們現在要把糖果分給這些孩子吃,但是糖果少,(m<n),所以糖果只能分配給一部分孩子。 每個糖果的大小不等,這 m 個糖果的大小分別是 s1,s2,s3,……,sm。除此之外,每個孩子對糖果大小的