Daniele Alessandri
b37d072b68
Make Predis\Autoloader faster.
2012-03-18 18:01:01 +01:00
Daniele Alessandri
608c48146f
Fix helper method for invalid options in connection classes.
...
This fix is needed since connection parameters do not respond to __toString()
anymore after recent changes.
2012-03-18 15:23:25 +01:00
Daniele Alessandri
bcba9e1009
Change how we check for required extensions in connection classes.
2012-03-18 15:22:24 +01:00
Daniele Alessandri
64a84d9020
Add notes about the parameters supported by each connection class.
2012-03-18 15:07:18 +01:00
Daniele Alessandri
a3b4c2244a
Remove some overkill stuff from Predis\ConnectionParameters.
...
It was basically some crazy and almost useless stuff I'd say.
2012-03-18 14:53:21 +01:00
Daniele Alessandri
4805a048ed
Add missing tests for Predis\Profile\ServerProfile::defineCommand().
2012-03-18 13:00:53 +01:00
Daniele Alessandri
c394458b80
Remove an almost useless method from Predis\Profile\ServerProfile.
2012-03-18 13:00:28 +01:00
Daniele Alessandri
51d0b58cd3
Add new interfaces used to abstract the main client class and contexts.
...
Now developers can pass a client object or an executable context (see
Predis\Transaction\MultiExecContext or Predis\Pipeline\PipelineContext)
interchangeably as parameters to their methods using the new interface
Predis\BasicCliantInterface.
These new interfaces will also allow us to easily create new client
classes aside from the standard Predis\Client one.
2012-03-18 11:05:33 +01:00
Daniele Alessandri
890ace8565
Rename certain connection parameters usig shorter names.
...
- `connection_async` is now `async_connect`
- `connection_timeout` is now `timeout`
- `connection_persistent` is now `persistent`
2012-03-16 19:33:17 +01:00
Daniele Alessandri
8ba432e8f7
Move list of renamed namespaces/interfaces/classes to a separate file.
2012-03-16 19:20:15 +01:00
Daniele Alessandri
d61bb3af07
Update CHANGELOG.
2012-03-11 17:50:48 +01:00
Daniele Alessandri
da381fffa9
Promote 2.6 as an independent server profile for Redis 2.6.
...
The development server profile now targets Redis 3.0.
2012-03-11 17:49:18 +01:00
Daniele Alessandri
7b01bc0644
Fix MONITOR and Predis\MonitorContext with Redis 2.6.
...
Starting with 2.6, Redis uses a slightly different format for the payload
returned by MONITOR for each command. Predis can now adapt to this difference
and returns a new `client` field in the payload object. This new field is
always defined but is set to NULL when connected to Redis < 2.6.
Please note that Redis 2.6 now does not echo the `MONITOR` command as the
first payload when opening a new MONITOR context.
2012-03-11 17:39:57 +01:00
Daniele Alessandri
7893fd1faa
New command: TIME (Redis v2.6-dev).
2012-03-11 17:34:06 +01:00
Daniele Alessandri
785670dcf7
Enable integration tests for Redis commands on Travis CI.
...
This was not possible before since our test suite requires Redis >= 2.4 but
their environment was running Redis 2.2 until a month ago or so.
2012-02-25 10:58:00 +01:00
Daniele Alessandri
ec723fd4a9
Remove the ability to execute a command on all the nodes of a cluster.
...
The reason for this change is that not every cluster implementation can support
this behaviour, think of Redis cluster for example. We moved the implementation
of this method in Predis\Connection\PredisCluster since it can still be useful.
2012-02-07 15:40:19 +01:00
Daniele Alessandri
b67af29eb6
Make cluster and replication classes extend from a common interface.
2012-02-07 11:42:34 +01:00
Daniele Alessandri
dc14c29676
Rename certain namespaces, interfaces and classes.
...
Now we follow a Symfony2-like naming convention for namespaces, interfaces
and classes sticking with one clear rule.
- Renamed namespaces:
- Predis\Network
- Predis\Profiles
- Predis\Iterators
- Predis\Options
- Predis\Commands
- Predis\Commands\Processors
- Renamed interfaces:
- Predis\IReplyObject
- Predis\IRedisServerError
- Predis\IConnectionFactory
- Predis\IConnectionParameters
- Predis\Options\IOption
- Predis\Options\IClientOptions
- Predis\Profile\IServerProfile
- Predis\Pipeline\IPipelineExecutor
- Predis\Distribution\INodeKeyGenerator
- Predis\Distribution\IDistributionStrategy
- Predis\Protocol\IProtocolProcessor
- Predis\Protocol\IResponseReader
- Predis\Protocol\IResponseHandler
- Predis\Protocol\ICommandSerializer
- Predis\Protocol\IComposableProtocolProcessor
- Predis\Network\IConnection
- Predis\Network\IConnectionSingle
- Predis\Network\IConnectionComposable
- Predis\Network\IConnectionCluster
- Predis\Network\IConnectionReplication
- Predis\Commands\ICommand
- Predis\Commands\IPrefixable
- Predis\Command\Processor\ICommandProcessor
- Predis\Command\Processor\ICommandProcessorChain
- Predis\Command\Processor\IProcessingSupport
- Renamed Classes:
- Predis\Commands\Command
- Predis\Network\ConnectionBase
- Classes moved to different namespaces:
- Predis\MonitorContext
Meh
2012-01-31 18:19:18 +01:00
Daniele Alessandri
ce625ca902
Start development of Predis v0.8.
2012-01-15 12:04:17 +01:00
Daniele Alessandri
46d293a716
Fix phpdocs.
...
[ci skip]
2012-01-14 23:35:39 +01:00
Daniele Alessandri
fcd41a4787
Fix CHANGELOG.
2012-01-14 23:33:39 +01:00
Daniele Alessandri
8dc9450f39
Bump year in LICENSE.
...
[ci skip]
2012-01-14 15:29:12 +01:00
Daniele Alessandri
6ad522f492
Update CHANGELOG.
2012-01-14 15:11:27 +01:00
Daniele Alessandri
317fb6c398
Make Predis\Network\MasterSlaveReplication serializable.
...
Since PHP cannot serialize closures we switched to a private method to check
if a SORT command is a read-only operation, but closures are still supported
even if they will make the connection unserializable.
2012-01-14 14:53:52 +01:00
Daniele Alessandri
93163bdfb3
Make it possible to serialize and unserialize connection instances.
2012-01-14 14:53:47 +01:00
Daniele Alessandri
626520b836
Add specific server profile alias for Redis 2.6.
2012-01-14 13:01:38 +01:00
Daniele Alessandri
aaea628c55
Back to development for the next patch release.
2012-01-14 12:51:01 +01:00
Daniele Alessandri
135fd5004b
Bump VERSION and update CHANGELOG.
v0.7.1
2011-12-27 16:19:23 +01:00
Daniele Alessandri
c25a815317
Update README.
2011-12-27 15:57:12 +01:00
Daniele Alessandri
39a9fc2ddd
Add a new example for complex replication configuration.
2011-12-27 12:34:44 +01:00
Daniele Alessandri
f5bca54bba
Fix CHANGELOG.
2011-12-27 10:40:29 +01:00
Daniele Alessandri
364aa180f9
Use Predis\NotSupportedException for unsupported connection parameters.
2011-12-27 10:38:06 +01:00
Daniele Alessandri
4da506cd9e
Track changes in Onion.
2011-12-24 19:03:13 +01:00
Daniele Alessandri
ef5034dc72
Update CHANGELOG.
...
[ci skip]
2011-12-24 12:17:03 +01:00
Daniele Alessandri
994f045a4a
Add a method to execute instances of Redis commands in a transaction.
2011-12-24 12:08:34 +01:00
Daniele Alessandri
8cd8d4e580
Fix broken scripted commands when all arguments are considered keys.
2011-12-21 23:14:46 +01:00
Daniele Alessandri
22f1aafae8
Fix example of replication.
2011-12-21 21:41:51 +01:00
Daniele Alessandri
c47b009b69
Update documentation for master / slave replication.
2011-12-21 21:33:30 +01:00
Daniele Alessandri
2cff6f0886
Merge branch 'replication' into v0.7
...
See ISSUE #21 for history and details about transparent master / slave
replication support in Predis.
2011-12-21 21:25:56 +01:00
Daniele Alessandri
63cb150fc2
Switch to the master server right before the execution of a pipeline.
...
This is actually a temporary solution since we should be using a dedicated
pipeline executor to handle the master/slave replication connection.
Ideally we should stick with a slave if no write operations are present in
the buffer, but forcing a switch to the master connection is the easiest
solution for now and users can still create a new client instance from one
of the slaves when they are sure that their pipelines contain read-only
operations.
2011-12-21 21:15:46 +01:00
Daniele Alessandri
466c666547
Add example for master / slave replication.
2011-12-21 21:01:48 +01:00
Daniele Alessandri
8d5c794efe
[tests] Add more tests for Predis\Network\MasterSlaveReplication.
2011-12-21 18:34:53 +01:00
Daniele Alessandri
e3fba5d4b7
[tests] Add more tests for Predis\Network\MasterSlaveReplication.
2011-12-21 16:50:03 +01:00
Daniele Alessandri
a8400f2ed8
Rename default replication class to Predis\Network\MasterSlaveReplication.
2011-12-21 16:50:03 +01:00
Daniele Alessandri
44629a33db
[tests] Add tests for Predis\Network\PredisReplication.
2011-12-21 16:50:01 +01:00
Daniele Alessandri
d38f164d3f
Minor fixes in documentation.
2011-12-21 11:26:26 +01:00
Daniele Alessandri
9bc5685959
Make the "profile" option accept a callable object as initializer.
...
This can be useful to set up the profile with additional commands,
e.g. when injecting new "virtual" commands based upon the EVAL and
the Predis\Commands\ScriptedCommand class.
2011-12-21 10:56:10 +01:00
Daniele Alessandri
565690a5b1
Disallow certain commands when in replication mode.
...
Some of these commands do not actually pose any threat, but their replies can
be misleading since users do not know on which server they are connected to.
We prefer to make things explicit so users can get a new client object out of
a specific connection in the replication pool to issue these commands.
2011-12-20 12:10:06 +01:00
Daniele Alessandri
bdbbe18e6c
Add the ability to get a connection by alias from aggregated connections.
...
Previously it was possible to create a new instance of Predis\Client using
the alias of a single connection in a cluster of connections. Now we added
the ability to do this also when using master/slave replication.
2011-12-18 15:07:21 +01:00
Daniele Alessandri
78027f0498
Use our own channel to distribute Predis via PEAR instead of PearHub.
...
The new PEAR channel is self-hosted using Pirum.
2011-12-18 13:28:45 +01:00