發布時間:2024-01-24閱讀(23)
也當過面試官,面試過不少應聘者,因為是我自己招人自己用,所以我不會看應聘者造火箭的技術有多牛比,只看擰螺絲的手藝瓷不瓷實。畢竟以后是一個整體,拖了大家后腿團隊都很難受。面試的題目一般也不會太難,就像問Redis,我只是想確認他真正用過就夠了。Redis 5種基礎數據結構和簡單操作要知道,最基本的要求,如果這個時候他會說出每種數據結構大致的應用場景,那么這一定是加分的,起碼要比那些只會說出幾種數據結構后,在那干瞪眼等我問下一個問題的強很多,千萬別冷場。

在任何一種編程語言里,字符串String都是最基礎的數據結構, 那你有想過Redis中存儲一個字符串都進行了哪些操作嘛?
在Redis中String是可以修改的,稱為動態字符串(Simple Dynamic String 簡稱 SDS)(快拿小本本記名詞,要考的),說是字符串但它的內部結構更像是一個 ArrayList,內部維護著一個字節數組,并且在其內部預分配了一定的空間,以減少內存的頻繁分配。
Redis的內存分配機制是這樣:
這樣既保證了內存空間夠用,還不至于造成內存的浪費,字符串最大長度為 512MB.。

上圖就是字符串的基本結構,其中 content 里面保存的是字符串內容,0x