首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在memcached c客户端中使用一致性哈希?

如何在memcached c客户端中使用一致性哈希?
EN

Stack Overflow用户
提问于 2013-05-26 16:33:49
回答 1查看 991关注 0票数 0

我使用libmemcached c client来设置并获取memcache的值。

代码语言:javascript
复制
  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片段或参考链接非常感谢。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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。

示例

代码语言:javascript
复制
memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_KETAMA, 1);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16757511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档