Permalink
Commits on Jul 7, 2015
  1. [tests] Fix base test case class to handle required Redis versions.

    This change is needed due to some internal changes in one of the
    latest minor releases of PHPUnit 4.x that essentially broke how we
    were checking for the required Redis version from method annotations.
    
    Conflicts:
    	tests/PHPUnit/PredisTestCase.php
    committed Jul 7, 2015
  2. [tests] Relax checks on invalid expire time messages.

    Previously there was a bug in Redis that returned the wrong command
    in -ERR messages when passing an invalid expire time with SETEX and
    PSETEX. Now that the bug has been fixed and that travis-ci uses a an
    updated version of Redis, our test suite turned red.
    
    Conflicts:
    	tests/Predis/Command/StringPreciseSetExpireTest.php
    	tests/Predis/Command/StringSetExpireTest.php
    committed Oct 21, 2014
Commits on Mar 11, 2015
  1. Emit socket error if ipredis connection has been lost/reset.

    The current code is checking for a failure (return false) or an empty buffer string, however
    neither of these will be the case if the connection has been reset or has errored. According
    to the docs for socket_recv, $buffer will be set to null if the connection is reset or their
    is no data. As currently null is not allowed for, we enter an infinite loop, to prevent this
    I've added null to the things we check before we emit a socket error. This prevents the
    infinite loop and correctly results in an Exception if the connection is lost/reset.
    RichardHeelin committed Mar 11, 2015
Commits on Aug 1, 2014
Commits on Jul 28, 2014
  1. Update CHANGELOG.

    [ci skip]
    committed Jul 28, 2014
  2. Move command "COMMAND" to the server profile for Redis 2.8.

    This command has been backported from the "unstable" branch of Redis
    to the "2.8" one, and it is available since 2.8.13.
    committed Jul 28, 2014
  3. Update README.

    [ci skip]
    committed Jul 28, 2014
Commits on Jul 27, 2014
  1. Update README.

    [ci skip]
    committed Jul 27, 2014
Commits on Jul 25, 2014
  1. Update README.

    [ci skip]
    committed Jul 25, 2014
  2. Update README.

    [ci skip]
    committed Jul 25, 2014
  3. Update README.

    [ci skip]
    committed Jul 25, 2014
Commits on Jul 23, 2014
  1. Fix read/write timeouts with PhpiredisStreamConnection.

    This is a regression of commit 4db0017, using stream_socket_recvfrom()
    bypasses stream wrappers thus read/write timeouts handled by PHP. The
    only way to make them work again is to fetch the raw socket from the
    stream resource and use socket_import_stream() which is unfortunately
    a PHP 5.4+ function.
    committed Jul 23, 2014
Commits on Jul 21, 2014
  1. Fix phpdocs.

    committed Jul 21, 2014
  2. Fetch updated slots map from node indicated by -MOVED response.

    This optimization makes it possible to fetch the slots map directly
    from the server indicated by the -MOVED response eliminating the need
    to use a random node in the pool, which in turn could require Predis
    to open a new and useless connection.
    committed Jul 21, 2014
  3. Minor phpdocs fixes.

    [ci skip]
    committed Jul 21, 2014
  4. Fetch cluster slots from node upon first -MOVED response.

    This is a more sane default as it allows users to indicate only a few
    servers of the whole cluster composition, while it previously required
    a more complex configuration of the client using client options.
    
    This feature can be disabled using the "enableClusterNodes()" method.
    committed Jul 21, 2014
  5. Light rewording and reorganization of README.

    [ci skip]
    committed Jul 21, 2014
Commits on Jul 18, 2014
  1. New command: COMMAND (Redis 3.0.0).

    The command returns the response as is, but it would probably be not a
    bad idea to parse it to restructure returned info using named arrays,
    making it easier to access single commands and their info.
    
    We will keep it as is for now, and investigate this change later.
    committed Jul 18, 2014
  2. Rebase me

    committed Jul 18, 2014
Commits on Jul 17, 2014
  1. Update CHANGELOG.

    committed Jul 17, 2014
  2. Switch to CLUSTER SLOTS instead of CLUSTER NODES for redis-cluster.

    CLUSTER SLOTS returns a structured response easier to handle compared
    to the bulk response of CLUSTER NODES which must be parsed making the
    whole thing more fragile.
    
    CLUSTER SLOTS has been added in Redis 3.0.0b7.
    committed Jul 17, 2014
  3. Run php-cs against source code.

    committed Jul 17, 2014
  4. Update CHANGELOG

    committed Jul 17, 2014
  5. Use same strategy for both client-side sharding and redis-cluster.

    This change is possible because, after a few changes in redis-cluster,
    our default cluster strategy used for client side sharding and the one
    used for redis-cluster turned out to be exactly the same, except for
    the hashing function used to calculate distribution.
    
    Actually some checks used to enforce correctness are redundant in the
    context of redis-cluster (e.g. the one used to make sure that keys in
    requests performing cross-keys operations will hash to the same slot,
    which is performed by the server) so we could also add a more dumb and
    permissive cluster strategy that relies on checks performed by Redis.
    
    The only difference between the client-side sharding strategy and the
    one used for redis-cluster, aside from the hash function, is in the
    rules used for extracting hash tags from keys since empty tags {} are
    considered valid by redis-cluster. In v1.0.0 the strategy used for our
    client-side sharding cluster will reflect this change, but we will not
    change it in v0.8 since it can be considered a breaking changes as it
    can potentially affect existing cluster deployments.
    committed Jul 17, 2014
  6. Update CHANGELOG.

    committed Jul 17, 2014
Commits on Jul 16, 2014
  1. Update CHANGELOG.

    [ci skip]
    committed Jul 16, 2014
Commits on Jul 15, 2014
  1. Back to development.

    [ci skip]
    committed Jul 15, 2014
  2. Rewrite pear packager script.

    We still use Onion's package.ini for the configuration of the package
    to keep things simple, but we might switch to a more compact solution
    in the future since we do not really need much of its features.
    committed Jul 9, 2014
  3. Reword CHANGELOG.

    committed Jul 15, 2014