phlib/hashstrategy

PHP 哈希策略库,包括随机、排序、一致性

2.0.0 2021-10-31 08:42 UTC

This package is auto-updated.

Last update: 2024-09-03 08:32:47 UTC


README

PHP 哈希策略库,包括随机、排序、一致性

Code Checks Codecov Latest Stable Version Total Downloads Licence

用法

策略

值以特定权重添加到索引中。根据策略和传递给 get() 的哈希 $key 获取。

  • 一致性
    • 对于给定的 $key,总是返回相同的值(或值)。
    • 使用权重来增加返回值的可能性。
  • 有序
    • 按权重递减的顺序返回值。
    • 具有相同权重的值按添加的顺序返回。
  • 随机
    • 随机选择值。
    • 使用权重来增加返回值的可能性。
$pool = new \Phlib\HashStrategy\Consistent();
$pool->add('one');
$pool->add('two');
$pool->add('three');
var_dump($pool->get('hello', 2));

ConfigPool

结合可用的哈希策略和一组配置,提供直接选择要使用的配置的方法,例如在副本集之间进行选择。

$config = [
     'server1' => ['hostname' => 'localhost', 'port' => 11211],
     'server2' => ['hostname' => 'localhost', 'port' => 11212],
     'server3' => ['hostname' => 'localhost', 'port' => 11213],
];
$hashStrategy = new \Phlib\HashStrategy\Consistent();
$pool = new \Phlib\HashStrategy\ConfigPool($config, $hashStrategy);
var_dump($pool->getManyConfigs('some key', 2));

许可证

此软件包是免费软件:您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它,无论是许可证的第3版,还是(根据您的选择)任何较新版本。

分发此程序是为了希望它有用,但没有提供任何保证;甚至没有关于适销性或特定用途的隐含保证。有关详细信息,请参阅GNU通用公共许可证。

您应已收到此程序随附的GNU通用公共许可证副本。如果没有,请参阅https://gnu.ac.cn/licenses/