3 个不稳定版本
0.1.1 | 2023年6月3日 |
---|---|
0.1.0 | 2023年6月3日 |
0.0.0 | 2023年6月1日 |
#1798 in 算法
27 每月下载次数
14KB
298 行
ringhash
一致性哈希实现。
使用方法
将此添加到您的 Cargo.toml
[dependencies]
ringhash = "0.1"
示例
use ringhash::Consistent;
fn main() {
let c = Consistent::new();
c.add("cacheA");
c.add("cacheB");
c.add("cacheC");
let users = vec![
"user_mcnulty",
"user_bunk",
"user_omar",
"user_bunny",
"user_stringer",
];
println!("initial state [A, B, C]");
for u in users.iter() {
let server = c.get(u).unwrap();
println!("{} => {}", u, server);
}
c.add("cacheD");
c.add("cacheE");
println!("with cacheD, cacheE added [A, B, C, D, E]");
for u in users.iter() {
let server = c.get(u).unwrap();
println!("{} => {}", u, server);
}
c.remove("cacheC");
println!("with cacheC removed [A, B, D, E]");
for u in users.iter() {
let server = c.get(u).unwrap();
println!("{} => {}", u, server);
}
}
许可证
双许可 MIT 许可证和 Apache 许可证(版本 2.0)。
有关详细信息,请参阅 LICENSE-MIT 和 LICENSE-APACHE。
依赖项
~2–8MB
~49K SLoC