redis基本知識

2021-08-11 02:37:20 字數 625 閱讀 4458

sds字串的優點:

杜絕緩衝區溢位

在c語言中,新增字串都會假設儲存的長度能足夠的容納新增的字串,然而新增長度一旦超過了儲存的長度,就會存在緩衝區溢位,使得新增的字串被擷取,導致新增字串內容丟失。

減少修改字串時帶來的記憶體重分配次數

c語言中,字串本身並不記錄自身的長度,而字串的底層實現總是乙個n+1的字串長度,所以在每次新增和縮短乙個字串時,都需要對記憶體重新分配。而sds字串本身用len屬性記錄了字串的長度,在新增時,會預留儲存字串那麼大的空間,下次新增時先判斷預留的空間是否能夠容納新增字串,能夠新增則直接新增,不能夠容納則為其分配,而刪除字串時,刪除的空間先通過sds字元中的free屬性儲存,留於新增操作運用。sds通過未使用空間,實現了空間預分配和惰性空間釋放兩種優化策略。

1. ## 空間預分配 ##

它主要是用於優化sds字串增長操作:當sds進行修改,並且需要對sds空間進行擴充套件的時候,程式不但會對sds分配修改所需要的空間,並會對sds分配額外的未使用的空間。

分配的原則:

Redis基本知識

redis 是什麼?redis remote dictionary server 即遠端字典服務 使用ansi c語言編寫 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api。免費,開源,是當下最熱門的 nosql 技術之一。redis 可以做什麼?redis...

redis基本知識

redis預設有16個資料庫 預設使用第0個 使用select切換資料庫 dbsize檢視大小 keys 檢視資料庫所有的key flushdb清除當前資料庫 flushall清除全部資料庫 redis是單執行緒的基於記憶體操作 核心 redis是將所有的資料庫全部放在記憶體中,所以使用單執行緒去操...

Redis基本知識

1.redis主要的三種模式 單機模式 分片模式 sharedjedis 集群模式 binaryjediscluster 分片模式通過一致性雜湊將key分布到不同的server上 2.如果乙個事務提交,事務中的所有操作將順序執行,且在事務執行期間其他client將阻塞 a.redis是單執行緒處理不...