節點由三部分組成,分別是指向前乙個結點的指標和指向後乙個節點的指標加上節點儲存的值value。
鍊錶的組成是由節點listnode組成的,並且使用的是 adlist.h/list 來操作鍊錶
list的結構有如下:
listnode * head; //鍊錶的頭節點
listnode * tall; //鍊錶的尾節點
unsigned long len; //鍊錶節點的個數
void *(*dup)(void *ptr); //節點值複製函式
void (*free) (void *ptr);//節點釋放函式
int (*match) (void *ptr,void *key); //節點值對比函式
dup 函式用於複製鍊錶節點所儲存的值雙端,每個節點都有prev和next兩個指標,所以尋找某個節點的前後值都是o(1)free 函式用於釋放鍊錶節點所儲存的值
match 函式用於對比鍊錶節點和另乙個值是否相等
無環,頭節點的prev和尾節點的next都指向null,所以不構成環
有頭指標和尾指標
有記錄鍊錶長度的屬性len,獲取鍊錶長度的時間複雜的為0(1)
多型,鍊錶節點使用void* 指標來儲存節點值,還可以用dup 、 match 、free函式來設定型別特定函式,所以鍊錶可以儲存不同型別的值
redis資料型別
redis對比與memcached 最大的優勢就是支援更多靈活的資料結構,豐富的資料操作 redis現支援的資料型別有 字串,列表,集合,雜湊,有序集合 1.字串 普通資料型別 2.列表 簡單的字串列表,按照插入順序排序。你可以新增乙個元素到列表的頭部 左邊 或者尾部 右邊 適用於 對資料頭尾操作頻...
Redis 資料型別
redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string是redis最基本的型別,你可以理解成與memcached一模一樣的型別,乙個key對應乙個value。string型別是二進位制安全的。意思是red...
Redis 資料型別
redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string是redis最基本的型別,你可以理解成與memcached一模一樣的型別,乙個key對應乙個value。string型別是二進位制安全的。意思是red...