Commit Graph

66 Commits

Author SHA1 Message Date
Daniele Alessandri fcecd2579a Added "connection_timeout" and "read_write_timeout" as optional arguments for the ConnectionParameters class. 2009-12-30 10:25:06 +01:00
Daniele Alessandri 55c40afcd8 Bugfix: return an empty string instead of null when the data length of a bulk reply is 0. 2009-12-29 14:55:26 +01:00
Daniele Alessandri abbc9108e0 Fixed another E_STRICT notice that was being raised when using a pipeline. 2009-12-27 11:42:18 +01:00
Daniele Alessandri b757afe492 Removed a superfluous method call. 2009-12-27 10:57:23 +01:00
Daniele Alessandri 75a06019f8 Fixed E_STRICT notices that were being raised by PHP due to a slightly different method signature used for two command classes. 2009-12-27 10:53:29 +01:00
Daniele Alessandri 51710682c7 ZSetReverseRange now inherits from ZSetRange as the two commands share the same behaviour. This change allowed us to remove some code duplication. 2009-12-27 10:48:41 +01:00
Daniele Alessandri f82d11a8db Changed the name of Predis\Client::createCommandInstance into Predis\Client::createCommand. 2009-12-27 10:33:02 +01:00
Daniele Alessandri 6814845e3f Removed a wrong type-check in Predis\Client::setupConnection that was breaking the initialization of a cluster of connections when using an array of URI strings as parameters. 2009-12-26 19:42:45 +01:00
Daniele Alessandri e8a0f3f627 Fix for a warning emitted by PHP when passing an array of strings parameters to Predis\Client::create. 2009-12-26 19:39:18 +01:00
Daniele Alessandri 6e39491692 Changed the returned string used to hash a Connection instance when using a cluster of connections. IMPORTANT NOTE: if you are using a version of Predis older than this commit, then this change will surely have an impact on your existing partitioned data as it changes the distribution of server nodes over the ring. 2009-12-25 22:04:24 +01:00
Daniele Alessandri 6d43827af9 Merge branch 'server_compat'
Conflicts:
	lib/Predis.php
2009-12-25 21:25:40 +01:00
Daniele Alessandri 8eb51ec0d1 Updated the test suite to work with the new parameters for Predis\Client. 2009-12-25 21:11:08 +01:00
Daniele Alessandri 47bb83bbb2 Type checking + minor fixes + more readable code for Predis\Client::__construct and Predis\Client::create. 2009-12-25 20:51:17 +01:00
Daniele Alessandri e64333d77b Complete rewrite of the client construction and initialization bits. 2009-12-25 19:54:12 +01:00
Daniele Alessandri 822a3e56e2 Implemented the "WITHSCORES" option for ZRANGE and ZREVRANGE. 2009-12-23 21:54:53 +01:00
Daniele Alessandri d9b304f9e3 Merge branch 'cmd_zincrby' 2009-12-19 10:49:34 +01:00
Daniele Alessandri d3a62d68bb Fixed the return value of Predis\Commands\ZSetIncrementBy as it does not return a boolean value but the current score after the increment operation. 2009-12-19 10:45:19 +01:00
Daniele Alessandri 20e416306c Added support for key tags: instead of hashing the full key, we hash only the portion enclosed within curly brackets. 2009-12-18 22:57:16 +01:00
Daniele Alessandri 3ccbff4277 The second parameter for RedisServerProfile::createCommandInstance is now optional. 2009-12-18 22:02:30 +01:00
Daniele Alessandri 6e76fbf660 Moved the default server profile class name to a private static variable of the Client class. 2009-12-18 21:59:00 +01:00
Daniele Alessandri 88cda9e52c Added the new public method Client::setServerProfile. 2009-12-18 21:29:44 +01:00
Daniele Alessandri 876ac2ec7c Renamed class RedisServerCompatibility to RedisServerProfile. 2009-12-18 21:24:19 +01:00
Daniele Alessandri e57348720f Just removed a bunch of unuseful comments... 2009-12-18 21:16:24 +01:00
Daniele Alessandri f811877c87 More trivial changes for HashRing::add and HashRing::remove. 2009-12-18 21:08:42 +01:00
Daniele Alessandri d3115e6259 Trivial changes in HashRing::getNodeKey. 2009-12-18 21:04:44 +01:00
Daniele Alessandri ca7f3e294c Removed the rather superfluous private method ConnectionCluster::getConnectionFromRing. 2009-12-18 20:48:04 +01:00
Daniele Alessandri bcfa64f431 Moved the hash calculation for a command from ConnectionCluster to the command instance itself. 2009-12-18 20:43:35 +01:00
Daniele Alessandri 3428529be6 Client::executeCommandInternal must accept IConnection types! Stupid bugs are indeed stupid. 2009-12-16 00:23:55 +01:00
Daniele Alessandri b1edc31af3 When using a ConnectionCluster (sharding data over multiple servers), disallow sending commands that cannot be hashed by a key argument. 2009-12-14 18:15:10 +01:00
Daniele Alessandri 344ec44059 Refactored Client::executeCommand and introduced the new method Client::executeCommandOnShards which is useful to execute commands on all the connections registered in a ConnectionCluster instance. 2009-12-14 18:02:54 +01:00
Daniele Alessandri 8d4958a516 The second parameter for Client::createCommandInstance is now optional. 2009-12-14 17:57:17 +01:00
Daniele Alessandri b777daa535 Slightly improved the internals of Command::getArgument and Command::getArguments. 2009-12-14 17:54:11 +01:00
Daniele Alessandri 177120e1a2 The private method computeHash of ConnectionCluster is now a static method. 2009-12-14 17:47:10 +01:00
Daniele Alessandri a84c9bdac7 ConnectionCluster now implements the IteratorAggregate interface, thus enabling iterations over the registered connections simply by using a foreach loop. 2009-12-14 17:43:30 +01:00
Daniele Alessandri c7cd2b67e0 Same fix as commit 755c252 in master for the short alias of \Predis\Commands\Decrement 2009-12-04 21:09:38 +01:00
Daniele Alessandri 755c252fde Fixed a small bug in which the short alias for \Predis\Commands\Decrement was wrongly set to 'incr' instead of 'decr' (thanks to Jeff lewwid{at}gmail.com for noticing). The test suite is flawed in this respect since it uses only the extended aliases for commands but the short ones are not checked for correctness. 2009-12-03 21:47:48 +01:00
Daniele Alessandri cfcb635c24 Predis\Client now uses the new compatibility profiles, though it is still hardcoded which profile to load. 2009-11-29 13:38:04 +01:00
Daniele Alessandri d0d51257c9 Added compatibility profiles for Redis server versions 1.0 and the upcoming 1.2. 2009-11-29 13:16:42 +01:00
Daniele Alessandri a70c5b0800 Added the new abstract class 'RedisServerCompatibility'. Its subclassess will be used to define a set compatibility profiles for each version of the Redis server. The only drawback is that the selected compatibility profile will be shared among multiple connections when using client-side sharding. 2009-11-29 13:09:08 +01:00
Daniele Alessandri c1fb041014 Merge branch 'pipeline'
Conflicts:
	lib/Predis.php
2009-11-29 11:13:50 +01:00
Daniele Alessandri d99b6e1213 Merge branch 'parameters' 2009-11-29 11:11:43 +01:00
Daniele Alessandri 8480019b2a Removed leftovers from the old pipeline implementation. 2009-11-28 14:24:00 +01:00
Daniele Alessandri 45be8e6385 Reworked a bit the internals of Predis\Client::create(). 2009-11-28 13:20:01 +01:00
Daniele Alessandri 6bd7ef9217 Made the constructor method of Predis\Client more flexible with the passed arguments. 2009-11-28 13:09:49 +01:00
Daniele Alessandri bb81971d71 Fix for a possible notice message thrown by PHP when there is no query string in the URI used to create a ConnectionParameters instance. 2009-11-28 12:24:15 +01:00
Daniele Alessandri 904278f927 Refactored out in a new method of ConnectionParameters the code to get the value of a parameter or a default value if the same parameter is not set. This also fixes a few PHP notice messages. 2009-11-28 11:46:59 +01:00
Daniele Alessandri 0adcd39486 Pipelines can now be initialized and used even without an anonymous function block. This is also needed to get pipelining support backported to PHP 5.2. 2009-11-28 11:18:34 +01:00
Daniele Alessandri f727c6aa69 Fixed a bug when reading large bulk replies from remote Redis instances 2009-11-21 18:24:59 +01:00
Daniele Alessandri 374070a2c1 Renamed the class ListPushTailPopFirst into ListPopLastPushHead (did the same for it registered alias), the former name was incorrect 2009-11-20 23:15:36 +01:00
Daniele Alessandri af810d9613 Implemented ZINCRBY (Class: \Predis\Commands\ZSetIncrementBy) 2009-11-20 22:23:42 +01:00