redis是由c語言編寫的,但是redis的字串並不是c語言原生的字串,而是叫sds的結構體,包含 free :空閒的位元組數 len: 已經使用的位元組數 char buf: 字元(位元組)陣列 。
使用sds的好處是:獲取字串長度的複雜度為o(1) 因為c語言原生的字串是不記錄長度的,sds的len就是長度的記錄
並且不用每次修改字串都要申請記憶體空間,比如新增長度小於 free的話就不用申請額外的空間, 減少了呼叫核心api的次數。
sds是二進位制安全的 ,除了可以儲存文字 ,也能儲存二進位制資料
使用sds不會造成緩衝區溢位.
Redis 5種資料結構
redis支援五種資料型別 1 string 字串 string型別是redis最基本的資料型別,乙個key對應乙個value。string型別是二進位制安全的。意思是redis的string可以包含任何資料。比如jpg或者序列化的物件 2 hash 雜湊 redis hash 是乙個鍵值對集合。r...
Redis 5種資料結構
在正式介紹5種資料結構之前,我們先了解下redis的一些全域性命令 資料結構和內部編碼 單執行緒命令處理機制。1.全域性命令 檢視所有鍵 keys keys命令會遍歷所有鍵,所以它的複雜度是o n 當redis儲存大量資料時,線上環境禁止使用 當前資料庫中鍵的總數 dbsize 檢查鍵是否存在 ex...
redis5種資料結構講解及使用場景
redis提供了5中資料結構,理解每種資料結構的特點對於redis開發運維非常重要。在redis中雜湊型別是指鍵本身又是一種鍵值對結構,如 value fieldn,valuen 列表型別是用來儲存多個有序的字串,列表中的每個字串成為元素 element 乙個列表最多可以儲存2的32次方 1個元素,...