Commit Graph

437 Commits

Author SHA1 Message Date
Jungtaek Lim
28fdd60f98 Merge branch 'closeable' of https://github.com/hgschmie/jedis into pool-closeable-support 2014-03-16 22:25:58 +09:00
Jonathan Leibiusky
12ab600dee Merge pull request #549 from HeartSaVioR/make_multi_in_pipeline_and_sync_work_smoothly
Fix multi in Pipeline and sync() - JedisDataException (fixes #547)
2014-03-12 10:41:51 -04:00
Jonathan Leibiusky
62b98a3e63 Add tests to check returning null to pool 2014-03-12 10:31:22 -04:00
Jonathan Leibiusky
f35567cc9f Merge branch 'null-check' of github.com:hgschmie/jedis into null-check 2014-03-12 10:28:44 -04:00
Marcos Nils
4e78b811be Merge JedisSlotBasedConnectionGuaranteedConnectionHandler to JedisSlotBasedConnectionHandler 2014-03-03 18:56:04 -03:00
Marcos Nils
b5fe10729b Merge branch 'fix-jedis-cluster-failover-to-slave' of https://github.com/HeartSaVioR/jedis into HeartSaVioR-fix-jedis-cluster-failover-to-slave 2014-03-03 18:49:43 -03:00
Henning Schmiedehausen
46eef9530b add a number of null check to return methods.
This allows calling these methods on error cleanup paths without having
to surround them with if checks all the time.
2014-02-27 10:58:46 -08:00
Henning Schmiedehausen
dc054268fa Add Closeable to JedisPool.
This allows JedisPool instances to also participate in try-with-resources.

Adds tests (both for JedisPool and the Jedis code itself).
2014-02-27 10:48:44 -08:00
Marcos Nils
ddb1870a5f Fix bug in JedisCluster del command. Fix #568 2014-02-27 10:48:46 -03:00
Jungtaek Lim
fcea0fe0fe CLUSTERDOWN : JedisClusterException 2014-02-26 07:54:08 +09:00
Jungtaek Lim
882d662470 Make Jedis Cluster more likely to antirez's redis-rb-cluster
JedisClusterCommand

* improvements on connection error handling
** if based on slot connection throws connection related exception, retry to random node
** if we retry with random node, but all nodes are unreachable, throw JedisConnectionException without retry
** try to release connection whether connection is broken or not

* bug fix : if asking flag is on, and success this time, set asking flag to off

JedisClusterConnectionHandler

* have flexibility on initializing slots cache
** allow some nodes connection failure - skip
** if current node is success initializing slots cache, skip other nodes
** if current node failed to initialize slots cache, discard all discovered nodes and slots

* set nodes if node does not exist in nodes
** it restricts JedisPool to replace - prevent IllegalStateException : Returned object not currently part of this pool

JedisSlotBasedConnectionGuaranteedConnectionHandler

* getConnection (random connection)
** check all connections by random sequence
** always return valid connection (able to ping-pong)
** throw exception if all connections are invalid

* some refactoring
2014-02-25 18:29:09 +09:00
Marcos Nils
756113821f Make JedisClusterCRC16 multi-thread 2014-02-20 14:58:04 -03:00
Marcos Nils
3f8507a117 Remove unnecessary connection allocation 2014-02-20 14:39:51 -03:00
Marcos Nils
e4de67048e Make JedisCluster multihread by improving connection handling 2014-02-18 21:59:53 -03:00
Jungtaek Lim
68ee4e49d0 Set dependency to Response when multi in pipeline and build dependency
first if Response's dependency found and not built

* there's some dependency with exec response and command responses
within multi
* if command responses's get() called before exec response's build(), it
calls exec response's build() first
* unit test included
2014-02-17 13:37:06 +09:00
Marcos Nils
ba9989e64c Add support for redis cluster hashtags 2014-02-12 00:39:12 -03:00
Jonathan Leibiusky
79f1dcb92b Merge branch 'master' of github.com:hgschmie/jedis into hgschmie-master 2014-02-11 12:22:01 -05:00
Jonathan Leibiusky
ba767cc5d4 Merge branch 'introduce-new-sentinel-commands-added-to-Redis-2.8' of github.com:HeartSaVioR/jedis into HeartSaVioR-introduce-new-sentinel-commands-added-to-Redis-2.8 2014-02-11 12:11:57 -05:00
Jonathan Leibiusky
bd364c6f70 Merge branch 'master' into HeartSaVioR-unsigned_long_cursor_with_compatibility 2014-02-11 12:05:26 -05:00
Jonathan Leibiusky
3bca5d8460 Merge branch 'unsigned_long_cursor_with_compatibility' of github.com:HeartSaVioR/jedis into HeartSaVioR-unsigned_long_cursor_with_compatibility 2014-02-11 11:29:18 -05:00
Jonathan Leibiusky
9776bbb4f8 Merge pull request #537 from HeartSaVioR/deprecated_transactionblock_and_pipelineblock
Mark @Duplicated to TransactionBlock and PipelineBlock related classes / methods
2014-02-11 11:28:09 -05:00
Jungtaek Lim
1ed231cf15 Mark @Duplicated to TransactionBlock and PipelineBlock related classes /
methods
2014-02-10 07:55:27 +09:00
Jungtaek Lim
ed81f37d1b Introduce *scan with "string" cursor parameter to support unsigned long
cursor

* overload all *scan method to change "int" cursor to "string" cursor
* set @Deprecated and leave reason to deprecate and when to remove to
current *scan method
* modify unit tests to make it work with new *scan method
2014-02-10 07:08:39 +09:00
Henning Schmiedehausen
7449619fca Implement Closeable for Jedis, BinaryJedis etc.
This allows a Jedis object to participate in try-with-resources when
using Java 7+. This change is fully backwards compatible to Java 6 and
previous releases of the Jedis client.
2014-02-07 13:39:41 -08:00
Daniel Josefsson
40c8a93340 Merge branch 'master' into eval-with-nested-lists-and-longs
Conflicts:
	src/main/java/redis/clients/jedis/Jedis.java
	src/test/java/redis/clients/jedis/tests/commands/ScriptingCommandsTest.java
2014-02-05 22:24:23 +00:00
Marcos Nils
a69dd4e242 Add exception handling in caso of unexecpected errors 2014-02-05 00:06:29 -03:00
Marcos Nils
d846149ae1 Fix #526. Node parsing error uppon :0 2014-02-04 22:34:48 -03:00
Jungtaek Lim
a5363582a6 Apply "Java Convention" to met Jedis's preferred source code Convention 2014-02-05 07:52:53 +09:00
Jungtaek Lim
6efeb45952 Merge branch 'master' into introduce-new-sentinel-commands-added-to-Redis-2.8
Conflicts:
	Makefile
	src/main/java/redis/clients/jedis/Jedis.java
2014-02-05 00:26:14 +09:00
Jonathan Leibiusky
bfecfcb744 Merge pull request #523 from xetorthio/pubsub
Add pubsub commands
2014-02-03 07:47:49 -08:00
Jonathan Leibiusky
d5f984a9d6 Merge branch 'transaction-block-should-not-call-discard-when-exception-ocurred' of github.com:HeartSaVioR/jedis into HeartSaVioR-transaction-block-should-not-call-discard-when-exception-ocurred
Conflicts:
	src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java
2014-02-03 10:46:23 -05:00
Marcos Nils
4ab54d955d Change pubSub to pubsub 2014-02-03 12:44:40 -03:00
Marcos Nils
4b53160a74 Remove unnecessary Builder and fix merge issue. Fixes #520 2014-02-01 20:52:41 -03:00
Marcos Nils
bd19193cb6 Merged with master 2014-02-01 20:41:14 -03:00
Marcos Nils
319a241de0 Remove unnecessary imports 2014-02-01 20:15:52 -03:00
Marcos Nils
8bec9fd373 Implement missing pubsub commands and fix indentation 2014-02-01 20:14:18 -03:00
Jonathan Leibiusky
8fef62e21d Merge branch 'pubsub-concurrency' of github.com:ibuildthecloud/jedis into ibuildthecloud-pubsub-concurrency
Conflicts:
	src/main/java/redis/clients/jedis/Connection.java
	src/main/java/redis/clients/jedis/JedisPubSub.java
2014-01-31 13:28:29 -05:00
Jonathan Leibiusky
105ca9f5bb Reformat all files in the project according to java conventions. 2014-01-31 11:24:06 -05:00
Jonathan Leibiusky
3e99749b2e Merge branch 'missedbuffer' of github.com:ibuildthecloud/jedis into ibuildthecloud-missedbuffer 2014-01-28 16:53:53 -05:00
Jonathan Leibiusky
265eab0cc9 Merge branch 'reset-state-of-jedis-client' of github.com:HeartSaVioR/jedis into HeartSaVioR-reset-state-of-jedis-client 2014-01-28 16:50:11 -05:00
Marcos Nils
b05d9adfb0 Change zadd parameter order to allow duplicated scoremembers but not members 2014-01-26 13:53:34 -03:00
Mayank Kakodkar
5f5b80e6e3 Corrected documentation for Jedis.get(), it returns a Java null, not (nil) 2014-01-23 21:03:46 +05:30
Jungtaek Lim
a50cf3b15e Apply Sentinel runtime configuration API introduced on Redis 2.8.4
* Implements new sentinel commands (failover, monitor, remove, set) 
* unit test included
** added 2 redis-server and 1 sentinel for failover test
* with some refactoring
** SentinelCommands : refactor to have interface
** HostAndPortUtil : same format to cluster setup
2014-01-22 00:23:40 +09:00
Jonathan Leibiusky
01842e4731 Merge branch 'fix-eval-argument-in-binary-jedis' of github.com:HeartSaVioR/jedis into HeartSaVioR-fix-eval-argument-in-binary-jedis 2014-01-18 11:39:31 -05:00
Marcos Nils
37f629765e Improve performance in MOVED and ASK response parsing 2014-01-17 12:06:20 -03:00
Darren Shepherd
f11c1622de Allow safe multi-threaded access to JedisPubSub
If Thread A calls a subscribe method on Jedis it will block on a socket read
call waiting for messages or subscription notifications.  Thread B is now free
to call additional methods on JedisPubSub to change the current subscriptions
that thread A is waiting for.  Essentially Thread A will do reads on the
socket and Thread B will do writes.

An issue occurs in that while Thread A is doing reads, in the
getObjectMultiBulkReply() method there is an implicit flush() call.  This
means both Thread A and Thread B may do a write to the socket.  Under this
situation if Thread A does a flush while Thread B is writing the internal
buffer will be corrupted.  The fix is to make thread A never call flush().
This allows Thread A to be solely reads and Thread B to be solely writes.

Additionally since Thread B is sending commands, the internal pipeline count
is incremented and never decremented.  So when Thread A terminates it's read
it resets the pipeline count.
2014-01-16 23:48:08 -07:00
Jonathan Leibiusky
842dcd2a95 Merge branch 'cluster' of github.com:marcosnils/jedis into marcosnils-cluster
Conflicts:
	src/main/java/redis/clients/jedis/BinaryClient.java
	src/main/java/redis/clients/jedis/Client.java
	src/main/java/redis/clients/jedis/Jedis.java
	src/main/java/redis/clients/jedis/Protocol.java
2014-01-16 16:35:04 -05:00
Marcos Nils
46733c5d5a Add test for redis cluster max redirections and refactor JedisClusterCommand exception handling 2014-01-16 18:04:27 -03:00
Marcos Nils
4ab8ea2ef7 Move Jedis CRC16 util as it's being used in the project.
Changed Makefile to cleanup redis cluster node configuration before running tests
Add cleanup to ClusterCommandTest.
2014-01-14 15:57:53 -03:00
Marcos Nils
33716e237c Add JedisClusterException file 2014-01-03 16:45:22 -03:00