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