redis的五種資料型別:
redis所用到的底層資料結構:
redis並沒有直接使用以上的資料結構來實現鍵值對資料庫,而是基礎這些資料結構建立了乙個物件系統,包含:字串物件、列表物件、雜湊物件、集合物件和有序集合物件,這些物件都至少用到了一種資料結構。
使用物件的優點:
物件的型別和編碼
乙個鍵值對會至少建立兩個物件:鍵物件、值物件
如set a 「a」命令,會建立兩個字串物件,redis中的每個物件由乙個redisobject結構表示:
typedef
struct redisobjectrobj;
物件型別:
所有的鍵的物件型別都是字串物件,使用type命令可以檢視乙個鍵值對的值物件型別:
編碼和底層實現:
物件的ptr指標指向物件的底層資料結構,這些資料結構由encoding(編碼)屬性決定,下圖為物件的編碼表:
每種型別的物件都至少使用的兩種不同的編碼,可以通過如下命令檢視物件所使用的編碼:
下圖列出了每種物件可以使用的編碼:
下圖為不同的編碼的物件所對應的object encoding 命令輸出值:
同一種資料型別的redis可以有多種底層實現資料結構,極大地提公升了reids的靈活性和效率,下面列出不同的物件型別,以及相同的物件型別不同的值的情況下所對應的底層資料結構。
字串物件
字串物件可以使用的編碼有:int、raw、embstr
embstr編碼是專門用於儲存短字串的一種編碼方式。列表物件
列表物件的編碼可以是ziplist或者linkedlist
雜湊物件
雜湊物件的編碼可以是ziplist或者hashtable
集合物件
集合物件的編碼可以是intset或者hashtable
有序集合物件
有序集合物件的編碼可以是ziplist或者skiplist
Redis 五種資料型別
一 前言 上篇部落格已經對redis的一些基本知識做了一些簡介,這篇部落格,將簡單介紹一些redis的五種資料型別。分別為string 字串 hash 雜湊 list 鍊錶 set 集合 zset 有序集合 對這些型別可以執行很多原子性的操作 比如向乙個string型別的value後面追加字串 向l...
Redis 五種資料型別
目錄 redis共有strings hashs lists sets sorted sets五種資料型別,可以說已經比較豐富了。下面只對這幾種資料型別的資料結構與用途做簡要介紹。至於每種資料型別的操作api,這裡只簡單一提,不再一一詳細介紹,有需要的使用者可以google即可。string是最簡單的...
Redis 五種資料型別
redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 資料型別一 字串 0.1 6379 set name hubotao2 ok127.0 0.1 6379 get name hubotao2 資料型別二 hash...