Commit Graph

201 Commits

Author SHA1 Message Date
Daniele Alessandri a3ead444b2 Removed a spurious new line. 2010-04-14 15:52:35 +02:00
Daniele Alessandri 8f50c5f69a User-configurable key distribution algorithm to be used for clustered connections. 2010-04-14 15:03:27 +02:00
Daniele Alessandri 0e52825d97 Merge branch 'client_options' into hyves_contribs_port 2010-04-14 14:36:39 +02:00
Daniele Alessandri 5842c57b28 Merge branch 'hashring_rework' into hyves_contribs_port 2010-04-14 14:36:10 +02:00
Daniele Alessandri c89e222fd2 Removed the setOption and getOption methods from ResponseReader as their implementation was clumsy. 2010-04-10 19:10:20 +02:00
Daniele Alessandri c8509dd068 Exposed ResponseReader::setHandler as a public method and implemented ResponseReader::getHandler. 2010-04-10 18:48:42 +02:00
Daniele Alessandri 9e97c15a50 \Predis\Client now uses the new \Predis\ClientOptions class to define various options for a client instance. 2010-04-10 17:45:40 +02:00
Daniele Alessandri c4341eafaa Implemented the new \Predis\ClientOptions class. 2010-04-10 16:53:19 +02:00
Daniele Alessandri a2617af24a Removed a spurious space character. 2010-04-10 16:45:58 +02:00
Daniele Alessandri ea04aa67c6 Bugfix: missing backslash for root namespace. 2010-04-10 16:44:50 +02:00
Daniele Alessandri 994258b4c2 Slightly changed the arguments order of HashRing::addNodeToRing. 2010-04-10 11:01:03 +02:00
Daniele Alessandri 3a44f766c2 Close the underlying connection also on MalformedServerResponse exceptions. 2010-04-10 10:15:05 +02:00
Daniele Alessandri bac4be648f Added support for persistent connections (optional and experimental). 2010-04-10 10:13:01 +02:00
Daniele Alessandri a1c827cb2d Precalculate the total count of the keys in the ring. 2010-04-10 09:25:58 +02:00
Daniele Alessandri 1ba033879a Bugfix: wrap-around differences for HashRing and KetamaPureRing. 2010-04-10 09:05:49 +02:00
Daniele Alessandri 79e7b0b209 Predis\ConnectionCluster now accepts an instance of Predis\Utilities\IRing as an optional parameter. 2010-04-04 23:32:21 +02:00
Daniele Alessandri 6d5060b226 Introduced the new KetamaPureRing class with the same key distribution algorithm of libketama. 2010-04-04 23:14:57 +02:00
Daniele Alessandri a6c246ac7c Small refactoring of the HashRing class. 2010-04-04 23:13:22 +02:00
Daniele Alessandri 18e181d9a1 Introduced the new IRing interface. 2010-04-04 20:13:07 +02:00
Daniele Alessandri aafddece15 Removed code duplication. 2010-04-03 14:01:53 +02:00
Daniele Alessandri 45ed2a9f96 Changed the parameters order for the constructor of the \Predis\CommunicationException class. 2010-04-03 13:31:49 +02:00
Daniele Alessandri 958c0a3b33 Disallow length parameter <= 0 for Connection::readBytes. 2010-04-03 13:23:42 +02:00
Daniele Alessandri f7f9e3483c Reworked the CommunicationException class and its derivates; When specified, close the underlying connection after a CommunicationException has been trown. 2010-04-02 18:53:42 +02:00
Daniele Alessandri 5040ce7d18 New exceptions hierarchy. 2010-04-02 16:58:19 +02:00
Daniele Alessandri 41f2065287 Removed a couple of redundant destructors. 2010-04-02 14:57:14 +02:00
Daniele Alessandri 617d5f69b6 Added support for async connections. 2010-04-02 14:28:15 +02:00
Daniele Alessandri c87fc91fb4 Bugfix: close the connection on Connection::rawCommand when the parameter is set to TRUE. 2010-04-02 14:15:10 +02:00
Daniele Alessandri 4cc43775b0 Added support for partial reads/writes. Note that stream_get_contents is not used because it doesn't seem to respect the timeout. 2010-04-02 13:51:46 +02:00
Daniele Alessandri 981b64fe21 Added support for weight parameter in server configuration, that allows to balance the keys asymmetrically across multiple servers. 2010-03-31 12:04:11 +02:00
Daniele Alessandri 6ea96dcfea Added support for optionally weighted nodes in the hashring. 2010-03-31 11:47:33 +02:00
Daniele Alessandri 435fdeab75 Add support for microsecond read/write timeouts. 2010-03-31 10:40:14 +02:00
Daniele Alessandri 4f3ffe1217 Made ConnectionCluster::getConnection public, so client code can check to which server a command would be sent. 2010-03-30 15:47:39 +02:00
Daniele Alessandri 486244be8d Reworked HashRing::remove to handle hash collisions in a consistent way. 2010-03-30 15:41:31 +02:00
Daniele Alessandri 2cd056cab6 Added wrapping around for the consistent hashing algorithm. 2010-03-30 15:03:49 +02:00
Daniele Alessandri 1c286f29d1 executeCommand is now part of the IConnection interface; Moved the actual implementation of executeCommand() from Predis\Client to Predis\Connection. 2010-03-30 12:53:11 +02:00
Daniele Alessandri 17dff871bc New command: HINCRBY (Redis v2.0-dev). 2010-03-29 12:46:43 +02:00
Daniele Alessandri f3d7e5d31b New command: HEXISTS (Redis v2.0-dev). 2010-03-29 12:46:37 +02:00
Daniele Alessandri 2d8007448f New command: CONFIG (Redis v2.0-dev). 2010-03-29 12:46:30 +02:00
Daniele Alessandri de1b8f45bc Fixed failing tests due to changes introduced in Redis commits 3ea27d3, cc3b01c and 653c924. 2010-03-29 12:46:23 +02:00
Daniele Alessandri 70907adcce Wrong parameters passed to ClientException on write errors over the network. 2010-03-16 22:53:50 +01:00
Daniele Alessandri 8391326de6 New command: HLEN (Redis v2.0-dev). 2010-03-16 17:40:24 +01:00
Daniele Alessandri 9e417d9bcf New command: HGETALL (Redis v2.0-dev). 2010-03-16 17:24:58 +01:00
Daniele Alessandri 13ae4c4ca0 New command: HVALS (Redis v2.0-dev). 2010-03-16 17:22:46 +01:00
Daniele Alessandri cd8674c2f7 New command: HKEYS (Redis v2.0-dev). 2010-03-16 17:21:55 +01:00
Daniele Alessandri 5787b4b9fd New command: HDEL (Redis v2.0-dev). 2010-03-16 17:20:25 +01:00
Daniele Alessandri 0fed80279a Renamed \Predis\Commands\HSet and \Predis\Commands\HGet to \Predis\Commands\HashSet and \Predis\Commands\HashGet for naming consistency. 2010-03-16 17:18:25 +01:00
Daniele Alessandri 1fe49863b4 Do not parse ResponseError instances. 2010-03-11 19:08:47 +01:00
Daniele Alessandri ee9868c123 Instead of passing around the actual socket resource, pass the Connection instance as argument. 2010-03-11 11:23:35 +01:00
Daniele Alessandri ce00cb14b9 Bugfix: the response parser for KEYS raises a E_WARNING when using iterators for multi bulk responses against Redis v2.0. 2010-03-10 23:45:04 +01:00
Daniele Alessandri daf6dbd7c2 // TODO stuff. 2010-03-10 18:48:32 +01:00