redis雖然提供了多種數(shù)據(jù)結(jié)構(gòu),但是redis并沒有直接使用這些數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)底層鍵值對迁客,而是基于這些數(shù)據(jù)結(jié)構(gòu)創(chuàng)建了一個對象系統(tǒng)(1:字符串 2:列表 3:集合 4:hash 5:有序集合)反粥。
接下來總結(jié)一下各個對象使用的底層數(shù)據(jù)結(jié)構(gòu)及其時間復(fù)雜度应闯。
redis對象
1:字符串
2:列表
2.1茸习、列表對象的編碼可以是ziplist或linkedlist柔逼。
編碼轉(zhuǎn)換:當(dāng)列表對象同時滿足一下兩個條件時挟裂,列表對象使用ziplist編碼享钞,否則使用linkedlist編碼
1)列表對象保存的所有字符串元素的長度都小于64字節(jié)時(redis配置文件 list-max-ziplist-value 配置)
2)列表對象保存的元素數(shù)量小于512個。(redis配置文件list-max-ziplist-entries配置)
2.2诀蓉、列表對象命令的實現(xiàn)
3:hash對象
4:集合
5:有序集合