個人主頁:tuzhenyu』s page
內部資料結構主要包括:動態字串,雙端鍊錶,字典,跳躍表;
記憶體對映資料結果主要包括:整數集合,壓縮列表;
struct sds
sds使用抽象結構中的len來判斷字元創的結尾,而不是像c一樣使用空字元」\0」表示結尾,保證了二進位制的安全;
typedef struct listnodelistnode
typedef
struct
listlist
typedef struct dictdict
typedef
struct dicthtdictht
typedef
struct dictentry
}dictentry
redis的雜湊表使用鏈位址法來解決鍵衝突,每個雜湊表節點都有乙個next指標,相同索引的雜湊表節點用next指標構成乙個單向鍊錶;
隨著操作的不斷執行,雜湊表儲存鍵值對會逐漸地增多或者減少,為了讓雜湊表的負載因子維持在乙個合理的範圍之內,需要進行rehash重新雜湊操作;
為字典的ht[1]雜湊表分配空間
重新計算所有鍵值對的鍵值hash值,根據hash值和sizemask將鍵值對重新放在ht[1]雜湊表制定的位置上;
將ht[1]設定為ht[0],重新建立乙個空雜湊表ht[1]用作下一次的rehash操作;
為了避免rehash期間對伺服器效能造成的影響,伺服器不是一次性將ht[0]中的所有鍵值對rehash到ht[1]中,而是分多次漸進式rehash操作;
typedef
struct zskiplistnodelevel;
struct zskiplistnode pre;
double score;
robj *robj;
}zskiplistnode;
跳躍表的刪除
typedef struct intsetintset;
元素的插入無論公升級與否因為要保持順序性,因此插入的時間複雜度都為o(n)
intset整數集合是有序的,因此使用二分查詢演算法實現查詢操作,查詢的事件複雜度為o(log(n));
typedef
struct redisobject
字串物件
字串物件的常用指令
列表物件
列表物件常用指令
雜湊物件
雜湊物件常用指令
集合物件
集合常用指令
有序集合
有序集合常用指令
Opencv Python API 基本資料結構
本例使用python3.7 opencv環境配置方法 pip install numpy matplotlib 構造2 行 4列 全是0的uchar型別的二維陣列import numpy as np z np.zeros 2 4 np.uint8 type z zarray 0,0,0,0 0,0,...
深入理解Redis概念 精
redis 是nosql key value 可持久化,分布式,記憶體,快取的非關係型資料庫 有人問你什麼是redis你就上面這句話,詳細解釋分為四部分解釋 nosql key value 非關係型資料庫 nosql not only structured query language 不僅僅是支援...
深入理解阻塞佇列(一) 基本結構
blockingqueue是乙個繼承自queue的介面,在queue的佇列基礎上增加了阻塞操作。簡單來說,就是在在blockingqueue為空時從隊頭取資料將會被阻塞,因為此時還沒有資料可取,一旦佇列中有資料了,取資料的執行緒就會釋放得到了資料 如果blockingqueue有容量限制且滿了,那麼...