面試常問點 Redis資料結構

2021-10-09 11:49:53 字數 688 閱讀 7612

眾所周知redis常用的資料型別有5種,但是可能不知道它們的底層基礎資料結構:

1.list(ziplist+linkedlist)

它是由壓縮列表+雙端鍊錶實現的列表物件

應用場景

訊息佇列

資料分頁

2.string(int+embstr+raw)3.hash(ziplist+hashtable)

它是由壓縮列表+字典實現的雜湊(雜湊)物件

應用場景

儲存物件(把使用者的資訊存到hash裡,以使用者id為key,使用者的詳細資訊為value)

4.set(intset+hashtable)

它是由整數集合+字典實現的集合物件

應用場景

查詢元素是否存在,記錄不能重複的資料(註冊使用者名稱)

記錄做過的事情(投票系統)

5.zset(ziplist+skiplist)

它是由壓縮列表+字典+跳躍表實現的有序集合物件

應用場景

計算權重

排行榜學藝不精,暫時想到這麼多,以後慢慢補充

面試常考資料結構與演算法

資料結構部分 1 陣列和鍊錶的區別。很簡單,但是很常考,記得要回答全面 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造...

面試常考資料結構與演算法

資料結構部分 1 陣列和鍊錶的區別。很簡單,但是很常考,記得要回答全面 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造...

面試常考資料結構與演算法

1 陣列和鍊錶的區別。很簡單,但是很常考,記得要回答全面 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造成記憶體空間的...