博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5行代码实现一致性哈希
阅读量:6082 次
发布时间:2019-06-20

本文共 515 字,大约阅读时间需要 1 分钟。

你没看错,5行代码实现一致性哈希!好吧,我发现我真是越来越噱头了。原理请自行google,我自己分析了下,特分享出来。这个的一个缺点是加减机器仅仅能从最右開始。

#include <iostream>

int32_t JumpConsistentHash(uint64_t key, int32_t num_buckets) {
int64_t b = -1, j = 0;
while (j < num_buckets) {
b = j;
key = key * 2862933555777941757ULL + 1;
j = (b + 1) * (double(1LL << 31) / double((key >> 33) + 1));
}
return b;
}
int main(int argc, char* argv[])
{
for (int i = 0; i < 10; i++)
{
std::cout << JumpConsistentHash(i, 10) << ' ';
std::cout << JumpConsistentHash(i, 11) << std::endl;
}
return 0;
}

转载地址:http://xzkwa.baihongyu.com/

你可能感兴趣的文章
javascript call和apply
查看>>
C#中实现验证码的参考代码
查看>>
ASP.NET使用AspNetPager实现简单的分页功能
查看>>
热词搜索_针对关键词的样式实现步骤
查看>>
python常见报错集合
查看>>
iOS--OCR图片识别
查看>>
Handler和AsyncTask
查看>>
关于ios::sync_with_stdio(false);和 cin.tie(0)加速c++输入输出流
查看>>
浅析微信支付:统一下单接口
查看>>
网络对抗技术_实验一_网络侦查与网络扫描
查看>>
黑板模式分析
查看>>
释放Win8.1 WinSxS冗余更新,微软Dism来解决
查看>>
【BZOJ】2243 [SDOI2011]染色
查看>>
springboot集成springsession利用redis来实现session共享
查看>>
文件上传与下载总结
查看>>
【测试基础】测试用例的设计方法
查看>>
MySQL优化-》执行计划和常见索引
查看>>
ThinkPHP中通过URL重写隐藏应用的入口文件index.php的相关服务器的配置
查看>>
18、图片 & 多媒体
查看>>
第七周进度总结
查看>>