簡單字串
先簡單了解一下C語言是怎么處理字串的:
在C語言中,字串結束的標識是空字符,也就是’’,這會有一個問題,就是字串的內容可能包括空字串,這個時候是不是就沒辦法正確存取字串的內容了,它有可能中途讀取一半就完了,
除此之外,它還不記錄字串的長度,這也會有一系列問題,
如果需要獲取字串的長度通過遍歷計數來獲取的,這會導致它的時間復雜度會比較高,
如果需要修改字串,就要重新分配記憶體,不重新分配的話,字串長度增大,超出給定的長度,這個時候會造成記憶體緩沖區溢位,字串長度減小還會造成記憶體泄露,
如果需要對兩個字串進行拼接,是通過呼叫strcat函式來實作的,如果沒有給它分配足夠長度的記憶體空間,就會直接導致緩沖區溢位,
既然C語言處理字串有這么多的弊端,那么Redis它是怎么處理字串的呢?
Redis專門創建了一種資料結構SDS,什么意思呢?simple dynamic string,簡單字串,
官方代碼:
struct sdshdr{
int len;
int free
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291859.html
標籤:其他
