REDIS_STRING (字符串)是Redis 使用得最爲廣泛的數據類型,它除了是SET 、GET 等命令
的操作對象之外,數據庫中的所有鍵,以及執行命令時提供給Redis 的參數,都是用這種類型
保存的。
字符串編碼
字符串類型分別使用REDIS_ENCODING_INT 和REDIS_ENCODING_RAW 兩種編碼:
REDIS_ENCODING_INT 使用long 類型來保存long 類型值。
REDIS_ENCODING_RAW 則使用sdshdr 結構來保存sds (也即是char* )、long long 、
double 和long double 類型值。
換句話來說,在Redis 中,只有能表示爲long 類型的值,纔會以整數的形式保存,其他類型
的整數、小數和字符串,都是用sdshdr 結構來保存。
編碼的選擇
新創建的字符串默認使用REDIS_ENCODING_RAW 編碼,在將字符串作爲鍵或者值保存進數據庫
時,程序會嘗試將字符串轉爲REDIS_ENCODING_INT 編碼。
字符串命令的實現
Redis 的字符串類型命令,基本上是通過包裝sds 數據結構的操作函數來實現的。