底層資料結構:動態字串、字典、整數集合、雙端連結串列、壓縮列表
字串物件:
int 浮點數值
raw 字串值>32位元組
embstr 字串值<32位元組
字串編碼轉換:
int => raw int追加的值為字串
embstr => raw embstr任何修改
列表物件:
ziplist 底層 - 壓縮列表
linkedlist 底層 - 雙向連結串列
雜湊物件:
ziplist 底層 - 壓縮列表
新加鍵值對,先將鍵打入壓縮列表的表尾,然後同樣方式儲存值。
同一個鍵值對挨在一起,鍵值對有先來後到。
雜湊物件所有鍵值對的字串長度<64位元組
雜湊物件所有鍵值對數量<512個
hashtable 底層 - 字典
字典鍵和值都是字串物件。
集合物件:
intset 底層 - 整數集合
集合物件儲存的都是整數值
不超過512個元素
hashtable 底層 - 字典
有序集合物件:
ziplist 底層 - 壓縮列表 按照元素分值排序
元素長度<64位元組
元素個數<128
skiplist 底層 - zset結構(字典+跳躍表)
型別檢查和命令多型
操作鍵:del explre rename type object
字串鍵:set get append strlen
雜湊鍵:hdel hset hget hlen
列表鍵:rpush lpop linsert llen
集合鍵:sadd spop sinter scard
有序集合:zadd zcard zrank zscore
型別檢查: redisObject type
多型命令
記憶體回收:引用計數
物件共享:將資料庫鍵的值指標指向現有的值物件。
共享值引用計數+1
物件的空轉時長:
lru 物件最後一次被命令訪問的時間
object idletime 空轉時間