Commit Graph

397 Commits

Author SHA1 Message Date
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
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
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
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
Marcos Nils
dd0bbdaf91 Several changes have been added to this commit:
- Add asking to cluster commands
- Make jedis cluster return connection to original pool
- Add tests for MOVED and ASK cluster responses
- Refactor connection handler to recalculate connections based on slots

This commit makes the first usable version of Jedis along with Redis Cluster
2014-01-03 16:42:21 -03:00
Marcos Nils
1b26815799 Add functionality to recalculate slots when receiving MOVED response from node.
Add test to check for ASK responses (implementation missing)
2014-01-02 20:52:17 -03:00
Marcos Nils
b2d22e2060 Add slot based connection which routes requests according to key slot 2013-12-28 00:59:35 -03:00
Marcos Nils
9f767a0848 Add automatic discovery of cluster nodes 2013-12-27 23:09:44 -03:00
Jungtaek Lim
53b3e041f3 Fix BinaryJedis.eval() method bug (argument)
* append unit test for BinaryJedis
2013-12-23 14:19:28 +09:00
Marcos Nils
af72248c22 Implement all Jedis cluster commands and rename RedisSlot class 2013-12-20 16:56:29 -03:00
Marcos Nils
0bc27ac3a2 Refactor redis cluster connection handler and add JedisAskDataException handling 2013-12-20 15:28:32 -03:00
Jungtaek Lim
3073f778b4 JedisPool / JedisSentinelPool resets returning object's state (watched,
multi)

* BinaryClient / BinaryJedis : added feature to reset its state
(watched, multi)
* JedisPool / JedisSentinelPool : calls new feature (reset state) when
Jedis object returns to pool
* Unit Test included
2013-12-21 01:33:46 +09:00
Marcos Nils
c008070045 Add JedisClusterCommand and updated code to use it respectively 2013-12-10 10:25:41 -03:00
Marcos Nils
0ebbf02c94 Change Moved cluster test and add confirmation for jedis cluster tests 2013-12-09 15:17:13 -03:00
Marcos Nils
a8987ed865 Add first test to thorw MovedDataException when receiving MOVED from a cluster node 2013-12-07 17:55:17 -03:00
Jonathan Leibiusky
46734e646a add WAIT command 2013-12-05 09:35:13 -05:00
Jonathan Leibiusky
0c00108f96 Merge pull request #490 from xetorthio/speedup_tests
Speedup tests
2013-12-03 16:51:04 -08:00
Jonathan Leibiusky
ceac8123d6 make control command tests fast 2013-12-03 17:54:35 -05:00
Jonathan Leibiusky
a27c67de66 add SCAN, HSCAN, SSCAN and ZSCAN 2013-12-03 16:55:52 -05:00
Jonathan Leibiusky
fa614bd2b8 Merge branch 'handles-client-output-buffer-limit' of github.com:HeartSaVioR/jedis into HeartSaVioR-handles-client-output-buffer-limit 2013-12-03 07:41:07 -05:00
Jonathan Leibiusky
46966fb89f Prepare redis cluster for testing. The cluster will always be in a deterministic state to be able to reproduce -MOVED and -ASK 2013-12-02 19:27:12 -05:00
Jonathan Leibiusky
5b15d48803 Refactor to have interfaces.
Add cluster pipeline commands.
2013-12-02 14:34:05 -05:00
Jonathan Leibiusky
77d244b96a Add CLUSTER INFO, CLUSTER SETSLOT and CLUSTER GETKEYSINSLOT commands 2013-12-02 14:05:35 -05:00
Jonathan Leibiusky
dde278152f Add CLUSTER ADDSLOTS and CLUSTER DELSLOTS commands 2013-12-02 11:36:55 -05:00
Jonathan Leibiusky
403f2b292c Add CLUSTER MEET command 2013-12-02 10:01:19 -05:00
Jonathan Leibiusky
e7e2bfaedf Launch 3 nodes on ports 7379 to 7381 with cluster enabled.
Add command CLUSTER NODES
2013-12-02 09:53:40 -05:00
Jungtaek Lim
15891c4117 make jedis unit tests pass to Redis 2.8.1
* increase sentinel instance to test JedisSentinelTest
** clear() called, slave promoted to master (slave of no one), New
Sentinel force to restore it (demote) -> slave is not reusable
* ipv6 applied at Redis 2.8 -> localhost / 127.0.0.1 / ::1 is now all same

* Makefile: sleep some time for launch each sentinel (workaround to sentinel's issue)
** issue to sentinel leader vote: https://github.com/antirez/redis/issues/1419
*** sentinel may confused to vote with sentinels launched approximately same time
2013-12-02 22:11:52 +09:00
Jonathan Leibiusky
18652b906b Merge branch 'speed-up-unit-test' of github.com:HeartSaVioR/jedis into upgrade_libs
Conflicts:
	src/test/java/redis/clients/jedis/tests/JedisPoolTest.java
	src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java
	src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java
	src/test/java/redis/clients/jedis/tests/ShardedJedisPipelineTest.java
	src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java
	src/test/java/redis/clients/jedis/tests/benchmark/PoolBenchmark.java
	src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java
2013-11-29 12:12:30 -05:00
Jonathan Leibiusky
bbb867781d upgrade to commons-pool 2 2013-11-28 08:13:57 -05:00
임정택
e9506298f8 fix bug in Protocol.processBulkReply()
* if RedisInputStream().read() at Protocol.processBulkReply() returns
-1, it runs with unexpected behavior
* fix: check and if return value is -1, it throws
JedisConnectionException with message "server has closed the connection"
** prevent unexpected behavior, specially ArrayIndexOutOfBoundException 
*** calls System.arraycopy() with length = -1 (cause limit = -1) at
RedisInputStream.read()

add pubsub unit test scenario : client-output-buffer-limit exceed

* Redis warns event(disconnect client) to their log, and suddenly
disconnected connection
** http://redis.io/topics/clients -> Output buffers limits
** so test expects JedisConnectionException with proper message
2013-10-16 18:22:04 +09:00
Jungtaek Lim
7e1a1a70b2 Speed up Sentinel related tests
* remove FIXME sleep codes for Sentinel related tests
** add functions for Sentinel tests (JedisSentinelTestUtil)
*** waitForSentinelRecognizeRedisReplication
*** waitForNewPromotedMaster
*** waitForSentinelsRecognizeEachOthers
**** TODO: there're no command for sentinel to list recognized sentinel
**** sleep 5.5 sec (sentinel pings to master every 5 sec)

* set HostAndPort class to public(no longer inner) class
** reason: We cannot know pool's current master if HostAndPort class is
private inner class / HostAndPort classes are duplicated (main/test)
** make getter method and parameterized constructor
*** set fields once, get anytime
2013-10-07 11:03:32 +09:00
Hisham Mardam-Bey
597366343d Fixed up eval(sha) tests to better check that the lua script ran properly. 2013-10-05 18:13:30 -04:00
Hisham Mardam-Bey
2ee7430518 Fixed issue #456 (evalsha loses args). 2013-10-05 17:33:25 -04:00
Eoin Coffey
796f80d9c0 Allow JedisPool to set a custom client name 2013-10-05 16:44:52 -04:00
Jungtaek Lim
35a2dfd4c0 JedisSentinelPool now takes care of multi failover
* Now Pool.initPool() call closeInternalPool(), instead of destroy()
** calling destroy() in Pool.initPool() may have side effect, and JedisSentinelPool did
* modify unit test to test failover twice (needs +1 slave)
** modify configurations for additional slave
2013-09-26 10:48:17 +09:00
Jonathan Leibiusky
ad58f816b6 make sure that JedisSentinelPool use timeout, password and db 2013-09-15 15:33:22 -03:00
Hisham Mardam-Bey
ebf1380eea Fixed bug where timeout, password, and database were not set in the
JedisSentinelPool overloaded contructor and hence not passed to JedisFactory.
2013-09-12 21:52:29 -04:00
Hisham Mardam-Bey
39d81d8f1f Added a JUnit test for JedisSentinelPool.
This test will set up and get a master from a Redis master slave pair being
watched by 2 Sentinels. It pings the master, segfaults it, asks the pool for
another connection and makes sure it can ping it.

This commit also restores the pom.xml file's scm information back to
xetorthio and adds the default Sentinel port to the Procotol.
2013-08-28 23:10:50 -04:00
Hisham Mardam-Bey
52286d6942 Refactored the inline thread that monitors the master and turned it into its
own class. The pool shuts down the monitors as well now.
2013-08-24 17:14:03 -04:00
Hisham Mardam-Bey
c2a48afafd Initial JedisSentinelPool based on code from hamsterready/jedis-sentinel-pool.
Given a master name and a set of sentinels this pool will subscribe to the
Sentinel notifications about master changes (+switch-master) and
re-establishes the pool to the new master when one is announced.
2013-08-23 23:06:13 -04:00
Hisham Mardam-Bey
9b78d19dcf Merge branch 'fix-issue-438' of https://github.com/vrischmann/jedis 2013-08-21 21:01:03 -04:00
Hisham Mardam-Bey
1f3b5f1977 Merge branch 'master' of https://github.com/anthonyu/jedis 2013-08-21 20:57:08 -04:00