* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Predis\Cluster\Distributor; use Predis\Cluster\Hash\HashGeneratorInterface; /** * A distributor implements the logic to automatically distribute keys among * several nodes for client-side sharding. * * @author Daniele Alessandri */ interface DistributorInterface { /** * Adds a node to the distributor with an optional weight. * * @param mixed $node Node object. * @param int $weight Weight for the node. */ public function add($node, $weight = null); /** * Removes a node from the distributor. * * @param mixed $node Node object. */ public function remove($node); /** * Returns a node from the distributor using the computed hash of a key. * * @param mixed $key * @return mixed */ public function get($key); /** * Returns the underlying hash generator instance. * * @return HashGeneratorInterface */ public function getHashGenerator(); }