(1)dictentry:redis是key-value資料庫,因此對每個鍵值對都會有乙個dictentry,裡面儲存了指向key和value的指標;next指向下乙個dictentry,與本key-value無關。
(2)key:圖中右上角可見,key(」hello」)並不是直接以字串儲存,而是儲存在sds結構中。
(3)redisobject:value(「world」)既不是直接以字串儲存,也不是像key一樣直接儲存在sds中,而是儲存在redisobject中。實際上,不論value是5種型別的哪一種,都是通過redisobject來儲存的;而redisobject中的type欄位指明了value物件的型別,ptr欄位則指向物件所在的位址。不過可以看出,字串物件雖然經過了redisobject的包裝,但仍然需要通過sds儲存。
實際上,redisobject除了type和ptr欄位以外,還有其他欄位圖中沒有給出,如用於指定物件內部編碼的字段;後面會詳細介紹。
(4)jemalloc:無論是dictentry物件,還是redisobject、sds物件,都需要記憶體分配器(如
jemalloc)分配記憶體進行儲存。以dictentry物件為例,有3個指標組成,在64位機器下佔24個位元組,jemalloc會為它分配32位元組大小的記憶體單元。
redis介面圖形展示
redis基本資料結構概述
redis 有 5 種基礎資料結構,分別為 string 字串 list 列表 hash 雜湊 set 集合 和 zset 有序集合 以下圖示並不代表記憶體連續,僅僅只是邏輯表述。因為redis的key值為字串,當我們使用字串型別作為value時,我們是在將乙個字串對映另乙個字串。member是不可...
Redis集群概述
redis cluster與redis3.0.0同時發布,以此結束了redis無官方集群方案的時代,目前,redis已經發布了3.0.7版本。redis cluster是去中心化,去中介軟體的,也就是說,集群中的每個節點都是平等的關係,都是對等的,每個節點都儲存各自的資料和整個集群的狀態。每個節點都...
Redis集群概述
redis cluster與redis3.0.0同時發布,以此結束了redis無官方集群方案的時代,目前,redis已經發布了3.0.7版本。redis cluster是去中心化,去中介軟體的,也就是說,集群中的每個節點都是平等的關係,都是對等的,每個節點都儲存各自的資料和整個集群的狀態。每個節點都...