2.1 SDS的定義
struct {
//buf中已使用的位元組數,等于SDS所保存字串的長度
int len;
//buf中未使用的位元組長度
int free;
//位元組陣列,用于保存字串
char[] buf;
}
2.2 SDS與C字串的區別
| C字串 | SDS |
| 獲取字串長度的復雜度為 O(N) | 獲取字串長度的復雜度為O(1) |
| API不安全,可能造成緩沖區溢位 | API安全,杜絕了緩沖區溢位 |
| 修改字串長度N次必然需要N次記憶體重分配 | 修改字串長度N次最多發生N次記憶體重分配 |
| 只能保存文本 | 二進制安全,可以保存文本和二進制資料 |
| 可以使用所有<string.h>中的函式 | 兼容部分C字串函式,可使用部分<string.h>中的函式 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/6065.html
標籤:NoSQL
上一篇:Redis的三大問題
下一篇:Redis 鏈表實作
