Redis的字符串就是一個由字節組成的序列,字符串可以存儲3種類型值:字節串(byte string),整數,浮點數;
用戶可以通過給定一個任意的數值,對存儲著整數或者浮點數的字符串執行自增(increment)或者自減(decrement)操作,在有需要的時候,Redis還會將整數轉換成浮點數。整數的取值範圍和系統的長整數(long integer)的取值範圍相同(在32位系統上,整數就是32位有符號整數,在64位系統上,整數就是64位有符號整數),而浮點數的取值範圍和精度則與IEEE754標準的雙精度浮點數(double)相同。Redis明確地區分字節串,整數和浮點數的做法是一種優勢,比起只能夠存儲字節串的做法,Redis做法在數據表現方面具有更大的靈活性。
示例:
除了自增操作和自減操作之外,Redis還擁有對字節串的其中一部分內容進行讀取或者寫入的操作(這些操作也可用於整數或者浮點數)。
再使用SETTANGE或者SETBIT命令對字符串進行寫入的時候,如果字符串當前的長度不能滿足寫入的要求,那麼Redis會自動使用空字節(null)來將字符串擴展至所需的長度,然後才執行寫入或者更新操作。
在使用GETRANGE讀取字符串的是,超出字符串末尾的數據會被視為是空串,而在使用GETBIT讀取二進制位串的時候,超出字符串末尾的二進制會被視為是0。
示例:
對超出字符串長度的二進制位設置時,超出的部分會被填充為空字節,setbit命令會返回二進制位被設置之前的值,在對Redis存儲的二進制位進行解釋時,Redis存儲的二進制位是按照偏移量從高到低排列的。通過將第2個二進制以及第7個二進制位的值設置為1,鍵的值將變為'!',也就是編碼為33的字符。
閱讀更多 hnyztcl 的文章