天天看點

Redisbook學習筆記(3)資料類型之字元串

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 結構來儲存。

<a href="http://s3.51cto.com/wyfs02/M02/12/33/wKioL1L8yHniHrM1AACmeenaYF8525.jpg" target="_blank"></a>

編碼的選擇

新建立的字元串預設使用REDIS_ENCODING_RAW 編碼,在将字元串作為鍵或者值儲存進資料庫

時,程式會嘗試将字元串轉為REDIS_ENCODING_INT 編碼。

字元串指令的實作

Redis 的字元串類型指令,基本上是通過包裝sds 資料結構的操作函數來實作的。

本文轉自shayang8851CTO部落格,原文連結:http://blog.51cto.com/janephp/1358987,如需轉載請自行聯系原作者