SkillAgentSearch skills...

Flexihash

Flexihash is a small PHP library which implements consistent hashing.

Install / Use

/learn @pda/Flexihash
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Flexihash

Build Status Coverage Status

Flexihash is a small PHP library which implements consistent hashing, which is most useful in distributed caching. It requires PHP5 and uses PHPUnit for unit testing.

Installation

Composer is the recommended installation technique. You can find flexihash on Packagist so installation is as easy as

composer require flexihash/flexihash

or in your composer.json

{
    "require": {
        "flexihash/flexihash": "^3.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')
  ->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"

Tests

Unit Test

% vendor/bin/phpunit

Benchmark Test

% vendor/bin/phpunit tests/BenchmarkTest.php

Further Reading

  • http://www.spiteful.com/2008/03/17/programmers-toolbox-part-3-consistent-hashing/
  • http://weblogs.java.net/blog/tomwhite/archive/2007/11/consistent_hash.html
View on GitHub
GitHub Stars366
CategoryDevelopment
Updated3mo ago
Forks83

Languages

PHP

Security Score

92/100

Audited on Dec 30, 2025

No findings