Commit Graph

544 Commits

Author SHA1 Message Date
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
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
756dc8deec Merge with master 2014-02-18 22:30:40 -03:00
Marcos Nils
e4de67048e Make JedisCluster multihread by improving connection handling 2014-02-18 21:59:53 -03:00
Jonathan Leibiusky
b7d551149a It is better to point everything to localhost and we just make sure
there is not redis running on port 1234 when renning the tests.
2014-02-17 18:01:19 -05:00
Jonathan Leibiusky
8ac9bd612c Merge pull request #546 from HeartSaVioR/sentinel_unit_test_revised
Sentinel unit test revised (use "sentinel failover", take care of "-failover-abort", etc)
2014-02-17 17:14:54 -05:00
Mayank Dang
c4fb2b4adc Fix #550 : Removed redundant call to connectionPool.getResource() in method getConnectionFromSlot(int slot) in class JedisSlotBasedConnectionHandler 2014-02-17 16:52:19 +05:30
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
Jungtaek Lim
05d63bbda4 Shift Redis/Sentinel instances to remove unused index
* Redis instances : 6, 7, 8 -> 5, 6, 7
* Sentinel instances : 4 -> 3
2014-02-15 20:22:50 +09:00
Jungtaek Lim
cee792dbfb Modify method sequence : public -> private 2014-02-15 13:13:32 +09:00
Jungtaek Lim
57b17dcc71 Clean up JedisSentinelTestUtil
* remove all unused methods
* move JedisSentinelPoolTest.waitForJedisSentinelPoolRecognizeNewMaster to JedisSentin
** both JedisSentinelTest and JedisSentinelPoolTest can use this implementation
* introduce FailoverAbortedException
** throws when we subscribe sentinel channels and got message by "-failover-abort-*" c
* respect Source Format to Java Convention (by Eclipse -> Source -> Format)
2014-02-15 13:12:08 +09:00
Jungtaek Lim
d937b48f90 Revert "Clean up JedisSentinelTestUtil"
This reverts commit a3862bc2dd.
2014-02-15 12:57:40 +09:00
Jungtaek Lim
a3862bc2dd Clean up JedisSentinelTestUtil
* remove all unused methods
* move JedisSentinelPoolTest.waitForJedisSentinelPoolRecognizeNewMaster to JedisSentinelTestUtil
** both JedisSentinelTest and JedisSentinelPoolTest can use this implementation
* introduce FailoverAbortedException
** throws when we subscribe sentinel channels and got message by "-failover-abort-*" channel
* respect Source Format to Java Convention (by Eclipse -> Source -> Format)
2014-02-15 12:53:30 +09:00
Jungtaek Lim
0909811538 Let JedisSentinelPoolTest recognizes "aborted failover" and fail fast
* let unit test fail if -failover-abort-* message is produced while waiting to failover
** waiting more is meaningless, and there is nothing we can do
** we can request "sentinel failover" to failover again, but it may can fail again
2014-02-15 11:00:46 +09:00
Jungtaek Lim
d2e073b2f2 Use "sentinel failover" to force failover
* Use "sentinel failover" to force failover
** faster than kill redis instances
* set failover timeout to 1 min
** It makes sense with failover within localhost
* reduce instances : 1 Redis Server and 1 Sentinel
** port is not changed -> I'll changed later at end of refactoring
2014-02-15 10:30:01 +09:00
Marcos Nils
b2fa6b6c40 Improve Jedis Cluster tests and cleanup son they run much faster and reliable 2014-02-14 05:31:16 -03:00
Marcos Nils
1d0290d000 Improve JedsClusterTest setup speed 2014-02-13 22:15:28 -03:00
Marcos Nils
76814b56a1 Remove unnecessary lines 2014-02-12 00:41:51 -03:00
Marcos Nils
ba9989e64c Add support for redis cluster hashtags 2014-02-12 00:39:12 -03:00
Marcos Nils
adc9cb215a Fix ClusterCommandTest AfterClass handling as it may leave the cluster inconsistent 2014-02-11 14:39:19 -03:00
Jonathan Leibiusky
fcef705a6c Add unit tests to Closeable 2014-02-11 12:31:32 -05: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
Marcos Nils
e59e4a0d2a Fix test to make jedis work with latest git master version of redis 2014-02-11 02:51:58 -03: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
Daniel Josefsson
f81f75177c Simplified unit test for compatibility with JDK6. 2014-02-08 10:10:45 +00: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
Jonathan Leibiusky
28e7d2af10 Revert "Update README on supported redis version"
This reverts commit b35e1f9482.
2014-02-05 10:47:11 -05:00
Jonathan Leibiusky
179498d4a3 Merge pull request #527 from xetorthio/node_parsing
Fix #526. Node parsing error uppon :0
2014-02-05 10:38:21 -05:00
Jonathan Leibiusky
b35e1f9482 Update README on supported redis version 2014-02-05 10:34:17 -05: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
dd62e360fa Apply "Java Convention" to met Jedis's preferred source code Convention 2014-02-05 00:45:48 +09:00
Jungtaek Lim
13f0c32f7c Add unit test for "sentinel set quorum" introduced by Redis 2.8.5 2014-02-05 00:41:34 +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