bcremer/flexihash
最新稳定版本:v5.0.0
Composer 安装命令:
composer require bcremer/flexihash
包简介
Library which implements consistent hashing. Modernized fork of flexihash/flexihash.
README 文档
README
Flexihash is a small PHP library which implements consistent hashing, which is most useful in distributed caching.
Note
This repo is a fork of https://github.com/pda/flexihash which had no release since 2020. Originally authored by @pda, @dmnc and @serima
Installation
Composer is the recommended installation technique. You can find flexihash on Packagist so installation is as easy as
composer require bcremer/flexihash
or in your composer.json
{
"require": {
"bcremer/flexihash": "^5.0.0"
}
}
Usage
$hash = new Flexihash(); // bulk add $hash->addTargets(['cache-1', 'cache-2', 'cache-3']); // simple lookup $hash->lookup('object-a'); // "cache-1" $hash->lookup('object-b'); // "cache-2" // add and remove $hash->addTarget('cache-4'); $hash->removeTarget('cache-1'); // lookup with next-best fallback (for redundant writes) $hash->lookupList('object', 2); // ["cache-2", "cache-4"] // remove cache-2, expect object to hash to cache-4 $hash->removeTarget('cache-2'); $hash->lookup('object'); // "cache-4"
Benchmarks
Performance can be tested with PHPBench.
git checkout main ./vendor/bin/phpbench run --report=aggregate --iterations=4 --tag=branch_main git checkout some-branch ./vendor/bin/phpbench run --report=aggregate --iterations=4 --ref=branch_main
Tests
Unit Test
composer test
Benchmark Test
vendor/bin/phpunit tests/BenchmarkTest.php
Further Reading
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-11-18