2013-05-26 6 views
0

Я использую libmemcached c client для установки и получаю значение memcache.Как использовать последовательное хеширование в memcached c client?

memcached_server_st *servers = NULL; 
    memcached_st *memc; 
    memcached_return rc; 
    char *key= "keystring"; 
    char *value= "keyvalue"; 

// memcached_server_st *memcached_servers_parse (char *server_strings); 
    memc= memcached_create(NULL); 

    servers= memcached_server_list_append(servers, "localhost", 5555, &rc); 
    servers= memcached_server_list_append(servers, "localhost", 5566, &rc); 
    rc= memcached_server_push(memc, servers); 

    if (rc == MEMCACHED_SUCCESS) 
    fprintf(stderr,"Added server successfully\n"); 
    else 
    fprintf(stderr,"Couldn't add server: %s\n",memcached_strerror(memc, rc)); 

    rc= memcached_set(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint32_t)0); 

    if (rc == MEMCACHED_SUCCESS) 
    fprintf(stderr,"Key stored successfully\n"); 
    else 
    fprintf(stderr,"Couldn't store key: %s\n",memcached_strerror(memc, rc)); 

    return 0; 

Я хочу использовать согласованный алгоритм хэширования для набора и получить ключ. http://docs.libmemcached.org/memcached_behavior.html#memcached_behavior_setlink

Но я не знаю, как реализовать this.code фрагменты или ссылки ссылки очень ценятся.

Заранее спасибо.

ответ

1

Перейдите по ссылке http://docs.libmemcached.org/memcached_behavior.html#memcached_behavior_setlink Вы можете увидеть два метода, чтобы сделать это.

первый один
MEMCACHED_BEHAVIOR_DISTRIBUTION
С помощью этого вы можете включить различные способы распределения значений серверов. Метод по умолчанию - MEMCACHED_DISTRIBUTION_MODULA. Вы можете включить последовательное хеширование, установив MEMCACHED_DISTRIBUTION_CONSISTENT. Согласованное хеширование обеспечивает лучшее распределение и позволяет добавлять серверы в кластер с минимальными потерями. В настоящее время MEMCACHED_DISTRIBUTION_CONSISTENT является псевдонимом для значения MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA.

второй один
MEMCACHED_BEHAVIOR_KETAMA
Устанавливает распределение по умолчанию для MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA и хэш MEMCACHED_HASH_MD5.

Пример

memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_KETAMA, 1);