#consistent-hashing #add

ringhash

一致性哈希实现

3 个不稳定版本

0.1.1 2023年6月3日
0.1.0 2023年6月3日
0.0.0 2023年6月1日

#1798 in 算法

27 每月下载次数

MIT/Apache

14KB
298

ringhash

Crates.io License Build Status

一致性哈希实现。

使用方法

将此添加到您的 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-MITLICENSE-APACHE

依赖项

~2–8MB
~49K SLoC