Daniele Alessandri
649e71c0ab
Clean up leftovers.
2012-04-30 17:07:19 +02:00
Daniele Alessandri
14ac381aad
Fix phpdoc.
2012-04-30 17:06:42 +02:00
Daniele Alessandri
78360ea27b
Set raw arguments when switching from scripted command to EVAL.
2012-04-28 18:04:54 +02:00
Daniele Alessandri
214b7d2dc9
Remove almost useless method.
2012-04-28 09:23:41 +02:00
Daniele Alessandri
2d0b30dac5
Client handles -NOSCRIPT falling back to EVAL for scripted commands.
...
Now Predis\Command\ScriptedCommand uses EVALSHA instead of EVAL internally
so that performances should be better since the client do not resend the
Lua script body on each call.
Plain EVALSHA commands are not affected and will return or throw the error.
2012-04-28 08:56:11 +02:00
Daniele Alessandri
75afe831b0
Fix Predis\Command\ServerEvalSHA::getScriptHash().
...
"Predis\Command\ServerEvalSHA::getScriptHash()" was calculating the hash
while it just needs to return the first argument of the command.
2012-04-28 01:30:21 +02:00
Daniele Alessandri
c36e6fd900
Pass also the command that generated the server error.
2012-04-27 23:59:51 +02:00
Daniele Alessandri
743ccc39ae
Remove the "safe" pipeline option.
...
Just let users specify the appropriate pipeline executor.
2012-04-27 23:36:12 +02:00
Daniele Alessandri
41c29bed4e
Change how Redis errors such as -ERR replies generates exceptions.
...
The "throw_errors" connection parameter has been removed and replaced by the
new "exceptions" client option since exceptions on -ERR replies returned by
Redis are not generated by connection classes anymore but are thrown by the
client class and other abstractions such as pipeline contexts.
This change does not affect much people using the Predis\Client class (aside
from the different configuration) but gives much more flexibility to those
building their own pieces of code around the internal classes of Predis.
2012-04-27 23:29:41 +02:00
Daniele Alessandri
90f37f8698
Do not assume that the position of a MultiBulkResponse iterator is 0.
2012-04-27 16:13:15 +02:00
Daniele Alessandri
dc889be2a2
Switch to master inside executor when pipelining in replication mode.
...
The actual code to switch to master has been implemented only in the
standard and the fire-and-forget executor classes since it does not
make sense to have it in special executors used exclusively when in
client-side clustering mode.
2012-04-25 13:02:33 +02:00
Daniele Alessandri
ca7bd8149f
Scripting abstraction can use negatives to calculate number of keys.
...
With a negative number Predis will count from the end of the arguments list
to calculate the actual number of keys that will be interpreted as elements
for `KEYS` by the underlying `EVAL` command.
2012-04-25 11:35:06 +02:00
Daniele Alessandri
9426d78b90
Fix example for custom distribution strategy.
...
See ISSUE #63 for details.
2012-04-13 11:37:03 +02:00
Daniele Alessandri
6b6c91cd15
Update CHANGELOG.
2012-04-01 10:15:31 +02:00
Daniele Alessandri
b511911ddb
Update README.
...
[ci skip]
2012-03-31 12:00:10 +02:00
Daniele Alessandri
eb450ae0b4
Make 2.6 the default server profile for the test suite too.
...
We leave 2.4 for Travis CI since their CI environment uses Redis 2.4.
[ci skip]
2012-03-31 11:49:46 +02:00
Daniele Alessandri
ca033d15a9
Add a couple of paragraphs in the FAQ.
2012-03-31 11:45:32 +02:00
Daniele Alessandri
9443da1948
Update TODO.
2012-03-31 11:42:25 +02:00
Daniele Alessandri
298dc87613
Update CHANGELOG.
2012-03-31 11:41:43 +02:00
Daniele Alessandri
92697aa075
Make 2.6 the default server profile.
2012-03-31 11:39:42 +02:00
Daniele Alessandri
7c393cbc09
Apparently the next major version or Redis will be 2.8.
2012-03-31 11:36:35 +02:00
Daniele Alessandri
5b6e4dc3dd
Make it possible to prepend the autoloader.
2012-03-19 11:31:55 +01:00
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