Files
predis/lib/Predis/Command/Hash/CommandHashStrategyInterface.php
T
Daniele Alessandri 511fe0bbab Rewrite the logic used to handle Redis commands with clustering.
The reason for this change is to support the upcoming redis-cluster since
it has different behaviors compared to the client-side cluster implementation
provided by Predis. For example redis-cluster will not support key tags or
certain operations currently available with our client-side implementation.
2012-05-16 16:50:37 +02:00

46 lines
1.3 KiB
PHP

<?php
/*
* This file is part of the Predis package.
*
* (c) Daniele Alessandri <suppakilla@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Predis\Command\Hash;
use Predis\Command\CommandInterface;
use Predis\Distribution\HashGeneratorInterface;
/**
* Interface for classes defining the strategy used to calculate an hash
* out of keys extracted from supported commands.
*
* This is mostly useful to support clustering via client-side sharding.
*
* @author Daniele Alessandri <suppakilla@gmail.com>
*/
interface CommandHashStrategyInterface
{
/**
* Returns the hash for the given command using the specified algorithm, or null
* if the command cannot be hashed.
*
* @param HashGeneratorInterface $hasher Hash algorithm.
* @param CommandInterface $command Command to be hashed.
* @return int
*/
public function getHash(HashGeneratorInterface $hasher, CommandInterface $command);
/**
* Returns the hash for the given key using the specified algorithm.
*
* @param HashGeneratorInterface $hasher Hash algorithm.
* @param string $key Key to be hashed.
* @return string
*/
public function getKeyHash(HashGeneratorInterface $hasher, $key);
}