Commit Graph

162 Commits

Author SHA1 Message Date
Jennifer Hickey
ba8ab92b0f Support srandmember with negative count
DATAREDIS-116
2013-07-01 11:33:02 -07:00
Jennifer Hickey
7b75924c40 Add authentication to Lettuce conn factory and pool
DATAREDIS-202
2013-06-28 16:50:14 -07:00
Jennifer Hickey
29b68e2808 Remove passing both connection info and pool to LettuceConnFactory 2013-06-28 15:41:40 -07:00
Jennifer Hickey
83a507bf1d Add Redis 2.6 info(section) method to Connections
DATAREDIS-183
2013-06-24 18:15:39 -07:00
Jennifer Hickey
e9d1901298 Change mSetNX/multiSetIfAbsent return type to Boolean
DATAREDIS-177
2013-06-24 17:31:47 -07:00
Jennifer Hickey
7173be2c28 Add Redis 2.6 srandmember with count to SetOperations
DATAREDIS-116
2013-06-24 16:39:45 -07:00
Jennifer Hickey
c1337d5067 Add Redis 2.6 srandmember with count to Connections
DATAREDIS-116
2013-06-24 16:39:24 -07:00
Jennifer Hickey
cc9b0821a0 Add wrapper for GenericObjectPool.Config for Spring 2013-06-24 13:50:52 -07:00
Jennifer Hickey
b79f7b8df0 Allow Lettuce connection pool for dedicated conns
DATAREDIS-201 

Inject LettucePool into LettuceConnectionFactory
to be used for a "dedicatedConnection". Dedicated 
connections are used only for blocking and tx ops
when a shared connection is used. If shareNativeConnection
is set to false, the dedicated conn will be
used for all ops.
2013-06-24 10:50:18 -07:00
Jennifer Hickey
88910d9324 Add Lettuce connection pool for non-shared conns 2013-06-24 10:27:11 -07:00
Jennifer Hickey
bae8a579d5 Factor JredisPool to a common Pool interface 2013-06-24 10:27:11 -07:00
Jennifer Hickey
83b87b663e Add scripting documentation 2013-06-21 18:52:02 -07:00
Jennifer Hickey
2c9ba9a5ed Add Redis 2.6 scripting commands to Connections
DATAREDIS-180
2013-06-19 21:52:34 -07:00
Jennifer Hickey
cc851c674e Add Redis 2.6 incrbyfloat to ValueOperations
DATAREDIS-181
2013-06-17 17:16:45 -07:00
Jennifer Hickey
128360d43c Add Redis 2.6 hincrbyfloat to RedisMap and HashOperations
DATAREDIS-181
2013-06-17 16:26:10 -07:00
Jennifer Hickey
ced5a755e9 Add Redis 2.6 incrBy/hincrBy float ops to Connections
DATAREDIS-181
2013-06-17 15:06:55 -07:00
Jennifer Hickey
45627760aa Add Redis 2.6 bitop and bitcount commands to Connections
DATAREDIS-179
2013-06-17 13:39:47 -07:00
Jennifer Hickey
47cf07b09f Only return JRedis conns to pool on conn Exceptions 2013-06-16 13:36:55 -07:00
Jennifer Hickey
9c49db2949 Add Redis 2.6 dump and restore commands to RedisTemplate
DATAREDIS-182
2013-06-16 13:23:15 -07:00
Jennifer Hickey
ff60d0d290 Add Redis 2.6 dump and restore commands to Connections
DATAREDIS-182
2013-06-16 13:20:52 -07:00
Jennifer Hickey
5817e24b9e Return null from SRP exec if watched value modified
DATAREDIS-168
2013-06-13 22:35:06 -07:00
Jennifer Hickey
37e79bafd5 Upgrade to SRP 0.6
DATAREDIS-186

- Handle a few method signature changes to varargs

- Handle possibility of exec() throwing Exceptions
if ErrorReply received in Redis 2.6
2013-06-13 15:25:12 -07:00
Jennifer Hickey
d3809213c8 Utilize new SrpUtils asBoolean method 2013-06-12 17:17:39 -07:00
Jennifer Hickey
a4f3d7db44 Add Redis 2.6 millisecond expiration commands
DATAREDIS-178

Add pExpire, pExpireAt, pTTl ops to connections
2013-06-12 14:03:00 -07:00
Jennifer Hickey
265d4cd18f Add default implementation of JredisPool
- Add DefaultJredisPool to pool JRedis connections

- Prevent returning the same resource to the pool
multiple times on JredisConnection close

- Fixes DATAREDIS-154 previous JRedis pool left
broken connections in the pool
2013-06-11 18:02:07 -07:00
Jennifer Hickey
280e6a6ccc Upgrade to JRedis master
DATAREDIS-54, DATAREDIS-174, DATAREDIS-129

- Switch to original JRedis for 2.6 support

- Remove base64 encoding as new JRedis supports binary
keys

- Add JredisPool interface to replace removed
JRedisService and pool implementation

- Temporarily switch integration tests to use
non-pooled connections

- Throw more specific Exception on JRedis connection
failures
2013-06-11 17:56:25 -07:00
Jennifer Hickey
dffa1de6d1 Remove RJC driver due to lack of Redis 2.6 support
DATAREDIS-185
2013-06-11 15:25:01 -07:00
Jennifer Hickey
66139f9fae Wrap native Exceptions in LettuceConnectionFactory
DATAREDIS-191

- Wrap native Exceptions in RedisConnectionFailureExceptions 

- Support switching from shared to non-shared connection
by resetting shared connection in afterPropertiesSet
2013-06-04 11:54:21 -07:00
Greg Turnquist
49dc960ab2 Add alternate constructor to MessageListenerAdapter
As a convenience when configuring with Java, added another constructor
call that allows setting the delegate and the default listener method
in one line of code.

```java
	public MessageListenerAdapter(Object delegate, String defaultListenerMethod) {
		this(delegate);
		setDefaultListenerMethod(defaultListenerMethod);
	}
```

This supports configuring a POJO-based listener with a single step:

```java
	@Test
	public void testCustomMethodWithAlternateConstructor() throws Exception {
		MessageListenerAdapter adapter = new MessageListenerAdapter(target, "customMethod");
		adapter.afterPropertiesSet();

		adapter.onMessage(STRING_MSG, null);

		verify(target).customMethod(PAYLOAD);
	}
```

A pure Java configuration bean can now look like this:
```java
	 @Bean
	 MessageListenerAdapter listenerAdapter(Receiver receiver) {
		 return new new MessageListenerAdapter(receiver, "pojoMethod");
	 }
	 @Bean
	 Receiver receiver() {
		 return new Receiver();
	 }
```
No longer do we have to A) assign the adapter to a variable and B) call
setDefaultListenerMethod, slimming down pure POJO configuration with pure
Java.
2013-05-31 11:16:31 -04:00
Jennifer Hickey
7c8dafce67 Redis timeouts should not be converted to 0
DATAREDIS-176

Only convert timeouts in Redis commands to 0 sec if
the value to convert is 0, otherwise round up to 1
2013-05-30 11:05:03 -07:00
Jennifer Hickey
db7b07788f Fix Lettuce compareAndSet
DATAREDIS-122

- exec() now returns null if value modified by other thread

- Use same connection for watch/unwatch and txs
2013-05-28 13:55:53 -07:00
Jennifer Hickey
39b83cea88 Fix NPE in Lettuce sort 2013-04-17 17:37:39 -07:00
Jennifer Hickey
0c9e8f5054 Fix corrupt subscription connections return to pool
with Redis 2.6

Redis 2.6 responds to unsubscribe requests even if
not subscribed. This results in unread data on the
InputStream on Subscription close if extra 
unsubscribe requests are issued. This causes 
problems if connection is reused 
(as in the case of Jedis pool).

- Only unsubscribe on Subscription close if still
subscribed

-  Use dedicated connection for RJC subscriptions,
as RJC makes extra unsubscribe calls on subscriber
close
2013-04-17 10:03:09 -07:00
Jennifer Hickey
c7555dddff Avoid NPE on LettuceConnectionFactory destroy 2013-04-16 20:14:49 -07:00
Jennifer Hickey
7c96b80e54 Make LettuceConnectionFactory thread-safe 2013-04-15 14:27:28 -07:00
Jennifer Hickey
7d485d6463 Upgrade to SRP 0.5
DATAREDIS-132, DATAREDIS-130, DATAREDIS-152

- Upgrade to fix broken config_get in SRP 0.2

- Fix syntax errors in sort methods

- Fix syntax errors in zRange/zRevRange methods 
with offset and count
2013-04-12 11:01:18 -07:00
Jennifer Hickey
aaa28495be Fix SRP exec not returning results of commands
executed in the tx

DATAREDIS-123

- Close pipeline on exec if not explicitly
opened by user and return results of closePipeline,
not result of exec command

- Close pipeline on discard if not explicitly
opened by user
2013-04-11 15:19:32 -07:00
Jennifer Hickey
7813a13f7a Add option to disable Lettuce connection sharing 2013-04-10 17:34:29 -07:00
Jennifer Hickey
0a702bf4af Share native connection between LettuceConnections
to minimize socket usage

DATAREDIS-126
2013-04-10 15:09:11 -07:00
Jennifer Hickey
f4f9f06356 Fix SRP zRevRangeByScore incorrect parameter ordering
DATAREDIS-167
2013-04-09 17:29:53 -07:00
Jennifer Hickey
f6c44dba78 Fix Lettuce and RJC zRevRangeByScore incorrect parameter ordering
DATAREDIS-167

- Fix min/max parameter ordering

- Fix Lettuce NPEs during transactions

- Fix LettuceConnection not passing offset/count to zRevRangeByScoreWithScores
2013-04-09 17:13:01 -07:00
Jennifer Hickey
a01db2b732 Add back synchronization to avoid corrupted subscription input/output streams
- Prevent simultaneous write of subscribe/unsubscribe using the same Connection

- Fix test failure by re-initializing "done" state of SubscriptionTask between runs and adding waits
2013-04-04 23:29:42 -07:00
Jennifer Hickey
6f1739a681 Fix SubscriptionTask leaving open connections
DATAREDIS-124

- Close connection when SubscriptionTask is canceled and subscribing thread is unblocked

- Ensure non-blocking Lettuce and SRP only attempt
to close subscriptions if active

- Cleanup unecessary synchronization between
SubscriptionTask methods, now that connection is
no longer set to null

- Cleanup unused monitor notify when SubscriptionTask thread ends
2013-04-04 14:59:51 -07:00
Jennifer Hickey
2291edae67 Fix messages not received if listening on channel and pattern
DATAREDIS-165

Infinite loop in PatternSubscriptionTask causing
broken pipes and unreceived messages
2013-04-04 11:27:28 -07:00
Jennifer Hickey
78ad1a7cd4 Fix NPEs and incorrect results in several ops within a Lettuce transaction
DATAREDIS-164
2013-04-02 16:54:48 -07:00
Jennifer Hickey
d34cf27996 Fix Jedis and RJC continuing to use pipeline after closed
DATAREDIS-162, DATAREDIS-163
2013-04-02 15:49:56 -07:00
Jennifer Hickey
c5c3a81f42 Fix Jedis brPop executes twice in a transaction
DATAREDIS-159
2013-04-01 16:45:40 -07:00
Jennifer Hickey
4e13ac5b86 Fix Jedis persist does not execute as part of a transaction
DATAREDIS-160
2013-04-01 16:44:51 -07:00
Jennifer Hickey
8ec6b79e09 Fix JedisConnection execute does not return correct results
DATAREDIS-158
2013-04-01 16:08:38 -07:00
Jennifer Hickey
63a79a4ebb Fix SRP zCount/zInterStore methods executing synchronously when pipelining
DATAREDIS-142
2013-04-01 10:32:12 -07:00