sokil / php-list
0.0.7
2016-07-14 20:02 UTC
Requires (Dev)
- phpunit/phpunit: 3.7.*
- satooshi/php-coveralls: 0.7.*
README
安装
您可以通过 Composer 安装库
{ "require": { "sokil/php-list": "dev-master" } }
优先映射
优先映射允许您指定项的优先级,并按优先级顺序遍历此列表。
按优先级向列表添加元素
<?php $list = new \Sokil\DataType\PriorityMap(); $list->set('key1', 'value1', 10); $list->set('key2', 'value2', 100);
根据优先级获取元素
<?php foreach($list as $key => $value) { echo $key . ' - ' . $value; } // this will print // key2 - value2 // key1 - value1
按键获取元素
<?php $list = new \Sokil\DataType\PriorityMap(); $list->set('key1', 'value1', 10); $list->get('key1');
权重列表
权重列表允许您指定值及其相对权重,并根据权重随机获取值。
假设我们有三台数据库服务器,IP地址分别为:10.0.0.1、10.0.0.2 和 10.0.0.3。我们希望按权重 60%、30% 和 10% 平衡节点间的连接。因此,大部分连接将流向服务器 10.0.0.1,其次是 10.0.0.2,然后是 10.0.0.3。
<?php
$list = new \Sokil\DataType\WeightList([
'10.0.0.1' => 60,
'10.0.0.2' => 30,
'10.0.0.3' => 10,
]);
$ipAddress = $list->getRandomValue();
现在,每个请求的地址都与其权重成比例。