我使用libmemcached c client来设置并获取memcache的值。
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片段或参考链接非常感谢。
提前谢谢。
发布于 2013-08-28 16:00:27
进入链接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);https://stackoverflow.com/questions/16757511
复制相似问题