W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
REDIS_STRING
(字符串)是 Redis 使用得最為廣泛的數(shù)據(jù)類型,它除了是 SET
、 GET
等命令的操作對象之外,數(shù)據(jù)庫中的所有鍵,以及執(zhí)行命令時提供給 Redis 的參數(shù),都是用這種類型保存的。
字符串類型分別使用 REDIS_ENCODING_INT
和 REDIS_ENCODING_RAW
兩種編碼:
REDIS_ENCODING_INT
使用 long
類型來保存 long
類型值。REDIS_ENCODING_RAW
則使用 sdshdr
結(jié)構(gòu)來保存 sds
(也即是 char*
)、 long long
、 double
和 long double
類型值。換句話來說,在 Redis 中,只有能表示為 long
類型的值,才會以整數(shù)的形式保存,其他類型的整數(shù)、小數(shù)和字符串,都是用 sdshdr
結(jié)構(gòu)來保存。
REDIS_ENCODING_RAW; REDIS_STRING -> REDIS_ENCODING_INT; REDIS_ENCODING_RAW -> sdshdr; REDIS_ENCODING_INT -> long; // datastruct 1 sdshdr [label="sdshdr"]; sds [label="sds/char*"]; long_long [label="long long"]; double [label="double"]; long_double [label="long double"]; sdshdr -> sds; sdshdr -> long_long; sdshdr -> double; sdshdr -> long_double; // datastruct 2 long [label="long"]; long_type [label="long"]; long -> long_type;}" />
新創(chuàng)建的字符串默認使用 REDIS_ENCODING_RAW
編碼,在將字符串作為鍵或者值保存進數(shù)據(jù)庫時,程序會嘗試將字符串轉(zhuǎn)為 REDIS_ENCODING_INT
編碼。
Redis 的字符串類型命令,基本上是通過包裝 sds
數(shù)據(jù)結(jié)構(gòu)的操作函數(shù)來實現(xiàn)的,沒有什么需要說明的地方。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: