sokil/php-list

0.0.7 2016-07-14 20:02 UTC

This package is auto-updated.

Last update: 2024-09-17 05:03:03 UTC


README

Build Status Latest Stable Version Coverage Status Total Downloads Daily Downloads

安装

您可以通过 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();

现在,每个请求的地址都与其权重成比例。