redis 有 5 種基礎資料結構,分別為:string (字串)、list (列表)、hash (雜湊) 、set (集合)和 zset (有序集合)。
以下圖示並不代表記憶體連續,僅僅只是邏輯表述。
因為redis的key值為字串,當我們使用字串型別作為value時,我們是在將乙個字串對映另乙個字串。
member是不可重複的。
member是不可重複的。
score,代表這個 member 的排序權重。
list/set/hash/zset 這四種資料結構是容器型資料結構,它們共享下面兩條通用規則:
create if not exists
如果容器不存在,那就建立乙個,再進行操作。比如 rpush 操作剛開始是沒有列表的,redis 就會自動建立乙個,然後再 rpush 進去新元素。
redis 所有的資料結構都可以設定過期時間,時間到了,redis 會自動刪除相應的物件。需要注意的是過期是以物件為單位,比如乙個 hash 結構的過期是整個 hash 物件的過期,而不是其中的某個子 key。
還有乙個需要特別注意的地方是如果乙個字串已經設定了過期時間,然後你呼叫了 set 方法修改了它,它的過期時間會消失。
redis基本資料結構 1
redis的作者為了方便自己的使用,在redis中定義了動態字串sds,鍊錶,字典dict,跳躍表skiplist,整數集合intset和壓縮列表ziplist這六種資料結構。下文,我簡要地介紹一下幾種資料結構的定義。sds的全稱叫 dynamic string,它的定義和注釋如下 struct s...
redis基本資料結構之ZSet
zset資料結構類似於set結構,只是zset結構中,每個元素都會有乙個分值,然後所有元素按照分值的大小進行排列,相當於是乙個進行了排序的鍊錶。如果zset是乙個鍊錶,而且內部元素是有序的,在進行元素插入和刪除,以及查詢的時候,就必須要遍歷鍊錶才行,時間複雜度就達到了o n 這個在以單執行緒處理的r...
Redis基本資料結構之ZSet
zset保留了集合不能有重複成員的特性,但不同的是,有序集合中的元素可以排序。但是它和列表使用索引下標作為排序依據不同的是,它給每個元素設定乙個分數 score 作為排序的依據。有序集合中的元素不能重複,但是score可以重複,就和乙個班裡的同學學號不能重複,但是考試成績可以相同。新增元素 命令為 ...