Commit Graph

1499 Commits

Author SHA1 Message Date
Daniele Alessandri ea32f74512 New command: ZRANGEBYLEX (Redis 2.8.9). 2014-06-09 15:26:17 +02:00
Daniele Alessandri 8dbac3dd73 New command: ZLEXCOUNT (Redis 2.8.9). 2014-06-09 15:17:36 +02:00
Daniele Alessandri 5a474c5a32 Rename alias used in Predis\Client for Predis\Transaction\MultiExec. 2014-06-03 18:56:48 +02:00
Daniele Alessandri 0148743a76 Fix parsing of the output of CLUSTER NODES to fetch slots map.
There was an error in presence of slaves in the cluster configuration,
see #165 for reference.
2014-06-03 16:24:27 +02:00
Daniele Alessandri 5c935d97bd Merge branch 'v1.0.0-dev/connection-namespace' 2014-06-03 15:45:57 +02:00
Daniele Alessandri 1fd113c570 Rename ComposableProtocolProcessor to CompositeProtocolProcessor. 2014-06-03 15:45:40 +02:00
Daniele Alessandri abd284c972 Complete reorganization of the Predis\Connection namespace.
* Renamed SingleConnectionInterface to NodeConnectionInterface since
  this name is better and makes even more sense in the context of
  cluster and replication scenarios.

* Moved specialized aggregate connections (the ones implementing both
  predis and redis cluster and master/slave replication) in a newly
  created Predis\Connection\Aggregate sub-namespace.

* Removed the "Connection" part from names of aggregate connection
  interfaces in the Predis\Connection\Aggregate sub-namespace.

* Changed "Composable" to "Composite" in the name of interfaces and
  classes that can use pluggable protocol processors.
2014-06-03 15:19:32 +02:00
Daniele Alessandri ff2e0823ec Merge remote-tracking branch 'github/pr/174' 2014-05-30 12:32:40 +02:00
Graham Campbell a6c6951bf8 Added 1.0 branch alias
Let's allow people to install predis using "1.0.x@dev", "~1.0@dev", or any other valid version constraint rather than typing "dev-master" which is really horrible.
2014-05-30 11:24:39 +01:00
Daniele Alessandri 87417f4d7e Skip integration tests for HyperLogLog commands on Redis < 2.8.9.
Caught this by running the test suite on TravisCI which still runs an
older version of Redis 2.8. We should find a more decent way to handle
differences in profiles when commands get added between patch releases
of Redis, our custom skip method will do for now.
2014-05-30 12:19:05 +02:00
Daniele Alessandri 2aa0b071fc New commands: PFADD, PFCOUNT, PFMERGE (Redis 2.8.9).
Many thanks to @rubensayshi for his initial commits on this in #163,
but I had to start from scratch for the master branch first.
2014-05-30 11:32:39 +02:00
Alexey Kupershtokh f784dfad84 Enable INCRBYFLOAT in cluster mode 2014-05-28 13:00:24 +02:00
Daniele Alessandri 10c2f321ff Merge branch 'pr170-master' 2014-05-28 12:54:16 +02:00
thbourlove 7da3da776f use phpunit 4.x instead of 3.x 2014-05-28 12:54:04 +02:00
thbourlove 90cb71ac4a isntall requirement with a better way 2014-05-28 12:53:58 +02:00
thbourlove 2d4383c891 add phpunit as dev requirement 2014-05-28 12:53:50 +02:00
Daniele Alessandri 8ea76f79c7 Minor rewording in CHANGELOG. 2014-03-25 15:33:27 +01:00
Daniele Alessandri 5c5dd40527 Remove implementation of Predis\Command\Command::__toString().
Issue #151 pointed to a flaw in how command instances were converted
to strings: we were simply truncating their arguments when exceeding
a certain size as this was mostly intended for logging or debugging,
but this approach breaks strings containing multibyte characters so
we decided to drop this feature altogether for the sake of simplicity.

It is still possible to replicate the same (and eventually improved)
behavior externally by fetching ID and arguments of a command out of
a command instance using the public methods made available by the
Predis\Command\CommandInterface.
2014-03-25 15:32:20 +01:00
Daniele Alessandri 4638e05865 Tweak sentence in CHANGELOG.
[ci skip]
2014-03-25 15:05:37 +01:00
Daniele Alessandri 4784291640 Failures for PHP 5.6 on Travis CI are not allowed anymore. 2014-03-25 14:49:49 +01:00
Daniele Alessandri a51ff2d6e5 Port #156 to the current master branch.
This fix the parsing of responses to INFO when the node is configured
to work with redis-sentinel.
2014-03-25 14:49:25 +01:00
Daniele Alessandri 451d28ee66 Let's set this in stone: next major version is going to be v1.0.0.
[ci skip]
2014-02-12 10:27:42 +01:00
Daniele Alessandri e23fd9bea8 Use redis-cluster rules for empty key tags for client-side sharding.
This commit represents a breaking change when the first occurrence of
"{}" is found in a key because it will produce a different hash than
previous versions of Predis, thus leading to a different partitioning.

If you really need to stick with the old behavior, you can subclass
Predis\Cluster\PredisStrategy and override extractKeyTag() using the
old implementation of this method and pass the strategy instance when
initializing the cluster connection via client options.
2014-02-11 19:06:47 +01:00
Daniele Alessandri 8fbe658ca8 Fix implementation for hash tags extraction from keys.
We now fully comply with the specifications defined by Redis.
2014-02-11 19:06:44 +01:00
Daniele Alessandri d89027d2da Add PHP 5.6 to the build matix of Travis-CI.
Builds are allowed to fail for now as PHP 5.6 is still in alpha stage.
2014-02-11 16:35:39 +01:00
Daniele Alessandri 26289f47ec Add support for key hash tags in redis-cluster (Redis 3.0.0b1).
Multi-keys operations are not allowed even when keys generate the same
hash but this will probably be supported in later betas of Redis which
means we will basically end up reusing the whole strategy used for
client-side sharding.

Ported from the v0.8 branch.
2014-02-11 15:44:37 +01:00
Daniele Alessandri ba0dc12d5b Merge pull request #146 from GrahamCampbell/master
Travis Tweaks
2014-02-10 21:00:02 +01:00
Graham Campbell 42a9489f11 Updated travis.yml 2014-02-10 19:49:26 +00:00
Daniele Alessandri 51febb32a9 Update CHANGELOG. 2014-01-16 15:26:30 +01:00
Daniele Alessandri 0a5363dddf Bump year in LICENSE.
[ci skip]
2014-01-10 17:47:32 +01:00
Daniele Alessandri b852eeed9f [bin] Add missing executable in the repository for new script. 2014-01-08 17:37:02 +01:00
Daniele Alessandri 10dcac8f05 [bin] Add helper script to automate PEAR package creation.
Note that this script takes care of customizing `phpunit.xml.dist` so
that tests can be run as soon as the PEAR package has been installed
as requested in #126.
2014-01-08 17:34:52 +01:00
Daniele Alessandri ae61a0fd2b [tests] Use Predis\Autoload from include_path when not in repository.
This is useful only for running the test suite after installing the
PEAR package, see #126 for reference.
2014-01-08 17:34:41 +01:00
Daniele Alessandri dc6c298960 Reword paragraph in README about HHVM compatibility. 2013-12-22 16:19:05 +01:00
Daniele Alessandri e04c7d51b8 Explicitly return null value. 2013-12-22 16:19:05 +01:00
Daniele Alessandri da8a203a75 Remove useless return statement. 2013-12-22 16:19:04 +01:00
Daniele Alessandri bf32f4b87c [tests] Remove unused "use" directives. 2013-12-22 16:19:04 +01:00
Daniele Alessandri 46671b9095 Run php-cs against test suite.
[ci skip]
2013-12-22 16:18:59 +01:00
Daniele Alessandri 9a38d2caec Move @property-read tags for parameters and options to interfaces.
This actually makes sense since whatever the actual implementation is,
classes implementing these interfaces should provide at least those
properties that are actively used through the library.
2013-12-22 15:03:31 +01:00
Daniele Alessandri cfa456fdd1 [tests] Fix a couple of innocuous glitches. 2013-12-22 15:00:51 +01:00
Daniele Alessandri 6a577a0eb5 Apply more phpdoc fixes. 2013-12-22 15:00:51 +01:00
Daniele Alessandri 8357af177e [test] Fix wrong variable. 2013-12-22 15:00:50 +01:00
Daniele Alessandri 7ebb8a8b42 [tests] Fix a couple of glitches in our base PHPUnit classes. 2013-12-22 15:00:50 +01:00
Daniele Alessandri 728d9dceb5 [tests] No need to reassign $exception. 2013-12-22 15:00:41 +01:00
Daniele Alessandri a092f6d4da Fix phpdocs for fluent interfaces.
[ci skip]
2013-12-22 13:52:57 +01:00
Daniele Alessandri 3befbb3ac2 Make Pipeline::executeCommand() return $this for fluent interface. 2013-12-22 13:40:36 +01:00
Daniele Alessandri 8d8a618d0e Add @property-read tags to client options class.
[ci skip]
2013-12-22 13:28:22 +01:00
Daniele Alessandri 5e1ea94f4a Add @property-read tags to parameters class.
[ci skip]
2013-12-22 12:59:40 +01:00
Daniele Alessandri b9b899eaf0 Fix incorrect usage of instance method in static method.
We also added a test to check that the socket-based connection backend
throws an exception when unable to resolve hostnames.
2013-12-22 12:38:54 +01:00
Daniele Alessandri 5065541cc6 Remove erroneous duplication of INFO in Redis profiles.
This oversight didn't end up in a blatant bug only because the correct
handler definition for INFO replaced the old class in the profile.
2013-12-22 12:23:55 +01:00