網站首頁 釣魚入門 釣魚技巧 魚餌料 釣魚工具 聚焦
當前位置:漁魚館 > 釣魚入門 > 新手釣魚

redis物件

欄目: 新手釣魚 / 釋出於: / 人氣:1.97W

redis使用物件來表示資料庫中鍵和值,每次在庫中建立一個鍵值對時,至少會建立兩個物件,一個是鍵物件,一個是值物件

其資料結構如下:

redis物件

1. 型別

這個型別儲存就是redis所支援的五種資料型別的一種

REDIS_STRING 字串物件

REDIS_LIST 列表物件

REDIS_HASH 雜湊物件

REDIS_SET 集合物件

REDIS_ZSET 有序集合物件

2. 編碼

物件ptr指標指向具體的底層資料結構的實現,而具體使用哪一種底層結構則有encoding屬性決定,共8種

REDIS_ENCODING_INT long型別的整數 REDIS_ENCODING_EMBSTR embstr編碼的簡單動態字串 REDIS_ENCODING_RAW 簡單動態字串 REDIS_ENCODING_HT 字典 REDIS_ENCODING_LINKEDLIST 雙端連結串列 REDIS_ENCODING_ZIPLIST 壓縮列表 REDIS_ENCODING_INTSET 整數集合 REDIS_ENCODING_SKIPLIST 跳錶

3. 字串物件

字串物件的編碼可以是int,raw,embstr

如果一個字串儲存的是整數值,那並且這個整數值可以用long來表示,那麼字串物件物件會將整數值儲存在字串結構的ptr屬性裡面(將void*轉換成long),並將編碼設定為int如果字串物件儲存的是一個字串的值,且這個字串的值的長度大於32位元組,那麼字串物件將使用一個SDS來儲存這個字串的值,並將編碼設定為raw如果字串物件儲存的是一個字串的值,且這個字串的值的長度小於32位元組,那麼字串物件將使用一個embstr編碼的方式來儲存這個字串的值,並將編碼設定為embstr,embstr編碼專門用來儲存短字串一種優化編碼

4. 列表物件

列表物件的編碼可以是ziplist或者linkedlist

列表物件儲存的所有字符串的長度都小於64位元組且列表物件儲存的元素數量小於512個時使用ziplist來儲存,否則使用linkedlist

5. 雜湊物件

字串物件的編碼可以是ziplist,hashtable

雜湊物件儲存的所有鍵值對的鍵和值的字串長度都小於64位元組,且雜湊物件儲存的鍵值對數量小於512時使用ziplist來儲存,否則使用hashtable

注:ziplist儲存雜湊物件時鍵值對都是挨在一起儲存的

redis物件 第2張

6. 集合物件

集合物件的編碼可以是intset或者hashtable

集合物件儲存的所有元素都是整數值且元素數量不超過512時使用intset儲存,否則使用hashtable

7. 有序集合物件

集合物件的編碼可以是ziplist或者skiplist

有序集合儲存元素個數小於128且所有元素成員長度都小於64位元組時使用ziplist來儲存,否則使用skiplist

Tags:redis