9个版本
使用旧的Rust 2015
0.2.0 | 2020年12月14日 |
---|---|
0.1.7 | 2018年1月21日 |
0.0.6 | 2017年10月3日 |
0.0.5 | 2016年1月20日 |
0.0.1 | 2015年1月15日 |
#1629 in 数据结构
每月 23 下载
14KB
261 行
rust-hash-ring
Rust的均匀哈希库
用法
extern crate hash_ring;
use hash_ring::HashRing;
use hash_ring::NodeInfo;
fn main() {
let mut nodes: Vec<NodeInfo> = Vec::new();
nodes.push(NodeInfo {
host: "localhost",
port: 15324,
});
nodes.push(NodeInfo {
host: "localhost",
port: 15325,
});
nodes.push(NodeInfo {
host: "localhost",
port: 15326,
});
nodes.push(NodeInfo {
host: "localhost",
port: 15327,
});
nodes.push(NodeInfo {
host: "localhost",
port: 15328,
});
nodes.push(NodeInfo {
host: "localhost",
port: 15329,
});
let mut hash_ring: HashRing<NodeInfo> = HashRing::new(nodes, 10);
println!(
"Key: '{}', Node: {}",
"hello",
hash_ring.get_node(("hello").to_string()).unwrap()
);
println!(
"Key: '{}', Node: {}",
"dude",
hash_ring.get_node(("dude").to_string()).unwrap()
);
println!(
"Key: '{}', Node: {}",
"martian",
hash_ring.get_node(("martian").to_string()).unwrap()
);
println!(
"Key: '{}', Node: {}",
"tardis",
hash_ring.get_node(("tardis").to_string()).unwrap()
);
hash_ring.remove_node(&NodeInfo {
host: "localhost",
port: 15329,
});
println!(
"Key: '{}', Node: {}",
"hello",
hash_ring.get_node(("hello").to_string()).unwrap()
);
hash_ring.add_node(&NodeInfo {
host: "localhost",
port: 15329,
});
println!(
"Key: '{}', Node: {}",
"hello",
hash_ring.get_node(("hello").to_string()).unwrap()
);
}
有关如何使用自定义哈希函数的示例,请参阅 examples/custom_hasher.rs
贡献
只需分叉它,实现您的更改并提交拉取请求。
许可证
MIT
依赖项
~145KB