Redis-壓縮表-ziplistPush詳解

/* 將長度爲slen的字符串s,頭插或者尾插入壓縮表zl中,where指示是頭插還是尾插 */
unsigned char *ziplistPush(unsigned char *zl, unsigned char *s, unsigned int slen, int where) {
    unsigned char *p; /* p保存插入位置 */

    /* 如果是頭插,即where==ZIPLIST_HEAD,p指向壓縮表的第一個結點,否則p指向壓縮表的最後一個結點 */
    p = (where == ZIPLIST_HEAD) ? ZIPLIST_ENTRY_HEAD(zl) : ZIPLIST_ENTRY_END(zl);

    /* 調用壓縮表將指定長度的字符串插入指定位置的函數 */
    return __ziplistInsert(zl, p, s, slen);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章