[plain]
view plain
copy
redis>set message "hello redis"
物件的名稱
redis_string
字串物件
redis_list
列表物件
redis_hash
雜湊物件
redis_set
集合物件
redis_zset
有序集合物件
[cpp]
view plain
copy
/** redis 物件
*/typedef
struct
redisobject robj;
redis物件底層資料結構
編碼所對應的底層資料結構
redis_encoding_int
long
型別的整數
redis_encoding_embstr
embstr
編碼的簡單動態字串
redis_encoding_raw
簡單動態字串
redis_encoding_ht
字典redis_encoding_linkedlist
雙端鍊錶
redis_encoding_ziplist
壓縮列表
redis_encoding_intset
整數集合
redis_encoding_skiplist
跳躍表和字典
[cpp]
view plain
copy
#define redis_encoding_embstr_size_limit 39
robj *createstringobject(char
*ptr,
size_t
len)
相對地,釋放記憶體的次數也由兩次變為一次。
embstr的objet和sds放在一起,更好地利用快取帶來的優勢。
[cpp]
view plain
copy
typedef
struct
dict dict;
view plain
copy
typedef
struct
dictht dictht;
[cpp]
view plain
copy
#define intset_enc_int16 (sizeof(int16_t))
#define intset_enc_int32 (sizeof(int32_t))
#define intset_enc_int64 (sizeof(int64_t))
[cpp]
view plain
copy
/** 跳躍表
*/typedef
struct
zskiplist zskiplist;
/* zsets use a specialized version of skiplists */
/** 跳躍表節點
*/typedef
struct
zskiplistnode level;
} zskiplistnode;
[cpp]
view plain
copy
typedef
struct
zset zset;
redis深度理解底層鎖原理
redis的鎖分別有incr setnx set,那麼我們就開始來談談他們的用法和場景吧!1.incr 計時器,1操作 a 語法 incr key b 場景 1 控制api 1秒內的多次訪問 2 記錄使用者每天訪問 的登入次數 c 為何我們說這個怎麼能算鎖呢,當然,單獨它肯定是算不了鎖的,因為它本身...
Redis的AOF持久化底層原理
當對空白資料庫執行鍵值對命令時,rdb持久化是將鍵值儲存到rdb檔案中,而aof持久化儲存資料庫狀態的方法是將命令寫入到aof檔案中。被寫入aof檔案的所有命令都是以redis的命令請求協議格式儲存 的,因為redis的命令請求協議是純文字格式,所以我們可以直接開啟 乙個aof檔案,觀察裡面的內容。...
HashMap底層原理
1.hashmap概述 hashmap是基於雜湊表的map介面的非同步實現。此實現提供所有可選的對映操作,並允許使用null值和null鍵。此類不保證對映的順序,特別是它不保證該順序恆久不變。2.hashmap的資料結構 注意,迭代器的快速失敗行為不能得到保證,一般來說,存在非同步的併發修改時,不可...