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...