Ejemplo n.º 1
0
void *UniqueTypeRdbLoad(RedisModuleIO *rdb, int encver) {
    if (encver != 0) {
        /* RedisModule_Log("warning","Can't load data with version %d", encver);*/
        return NULL;
    }

    uint64_t elements = RedisModule_LoadUnsigned(rdb);
    
    unique *unique = uniqueCreate();
    char *pkey, *pval;
    size_t lkey, lval;
    sds key, val;
    while(elements--) {
        pkey = RedisModule_LoadStringBuffer(rdb, &lkey);
        pval = RedisModule_LoadStringBuffer(rdb, &lval);
        key = sdsnewlen(pkey, lkey);
        val = sdsnewlen(pval, lval);
        RedisModule_Free(pkey);
        RedisModule_Free(pval);
        uniquePush(unique, key, val, retain_new);
    }
    return unique;
}
Ejemplo n.º 2
0
void *TagIndex_RdbLoad(RedisModuleIO *rdb, int encver) {
  unsigned long long elems = RedisModule_LoadUnsigned(rdb);
  TagIndex *idx = NewTagIndex();

  while (elems--) {
    size_t slen;
    char *s = RedisModule_LoadStringBuffer(rdb, &slen);
    InvertedIndex *inv = InvertedIndex_RdbLoad(rdb, INVERTED_INDEX_ENCVER);
    assert(inv != NULL);
    TrieMap_Add(idx->values, s, MIN(slen, MAX_TAG_LEN), inv, NULL);
    rm_free(s);
  }
  return idx;
}
Ejemplo n.º 3
0
void *RaxType_RdbLoad(RedisModuleIO *rdb, int encver) {
    if (encver != 0) {
        return NULL;
    }
    
    // Determin how many elements are in the trie
    uint64_t elements = RedisModule_LoadUnsigned(rdb);
    rax *r = raxNew();
    
    while (elements--) {
        size_t len;
        char *key = RedisModule_LoadStringBuffer(rdb, &len);
        // TODO: Load value from RDB.
        raxInsert(r, (unsigned char *)key, len, NULL, NULL);
    }
    return r;
}