Redis學習筆記 Redis內部資料結構

2021-10-08 07:35:24 字數 763 閱讀 3762

redis內部資料結構

redis和其他key-value資料庫的很大區別是它支援非字串型別的value值。它支援的value值的型別如下:

sds (****** dynamic string) 簡單動態字串 雙端鍊錶 字典(dictionary/map/associative array) 跳躍表(skiplist) 下面將對以上的各個型別在redis內部的實現進行分析。

一、sds (****** dynamic string) 簡單動態字串

typedef

char

*sds

;

struct

sdshdr

;

redis> set msg "hello world"

ok(integer) 18

redis> get msg

"hello world again!"

看看這個過程中sdshdr的變化情況:

首先,set msg後,sdshdr如下:

struct

sdshdr

struct

sdshdr

可以看到,redis的sds會預分配2倍自己大小的空間,這樣就減少了記憶體的追加操作,即減少了字串追加操作的時間。

Redis學習筆記 Redis事務

redis事務可以一次執行多個命令 按順序地序列執行,執行中不會被其他命令插入,不許加塞 1.簡介 redis事務可以一次執行多個命令 允許在一次單獨的步驟中執行一組命令 特徵 1 批量操作在傳送exec命令前被放入佇列快取 2 收到exec命令後進入事務執行,事務中任意命令執行失敗,其餘的命令依然...

redis 學習筆記

本文寫作源於最近產品中部分功能用到了redis redis在功能上是乙個與memecache類似的軟體,但它比memecache提供了更強大的功能。redis本質上是乙個key value型別的記憶體資料庫。其value可以是string,list,set,sorted set,hash。很多地方都...

redis學習筆記

1.redis的無序集合 sadd命令產生乙個無序集合 smembers檢視集合元素 sismember用於檢視集合是否存在,匹配項包括集合名和元素個數。匹配成功返回1,匹配失敗返回0 2.有序集合 zadd 生成乙個有序集合。zrange檢視正序的集合,zrevrange檢視反序的集合 set和g...