比如說, 集合類型就可以由字典和整數集合兩種不同的數據結構實現, 但是, 當用戶執行 ZADD 命令時, 他/她應該不必關心集合使用的是什么編碼, 只要 Redis 能按照 ZADD 命令的指示, 將新元素添加到集合就可以了。
這說明, 操作數據類型的命令除了要對鍵的類型進行檢查之外, 還需要根據數據類型的不同編碼進行多態處理.
為了解決以上問題, Redis 構建了自己的類型系統, 這個系統的主要功能包括:
redisObject 對象.
基于 redisObject 對象的類型檢查.
基于 redisObject 對象的顯式多態函數.
對 redisObject 進行分配、共享和銷毀的機制.
下圖對應上面的結構