Do not deserialize StringRedisConn pipeline/tx results by default

- Change StringRedisConn to not deserialize pipelined/
exec results by default

- Remove option to enable/disable deserialize of
results in StringRedisTemplate. In most cases, the
same StringRedisConn is not used b/w ops in a pipeline 
or tx, so this is rarely useful
This commit is contained in:
Jennifer Hickey
2013-07-24 10:47:33 -07:00
parent be199d8c97
commit 76fad5f2bc
6 changed files with 5 additions and 52 deletions

View File

@@ -88,6 +88,7 @@ public abstract class AbstractConnectionIntegrationTests {
public void setUp() {
byteConnection = connectionFactory.getConnection();
connection = new DefaultStringRedisConnection(byteConnection);
((DefaultStringRedisConnection)connection).setDeserializePipelineAndTxResults(true);
initConnection();
}

View File

@@ -37,6 +37,7 @@ public class DefaultStringRedisConnectionPipelineTests extends DefaultStringRedi
@Before
public void setUp() {
super.setUp();
connection.setDeserializePipelineAndTxResults(true);
when(nativeConnection.isPipelined()).thenReturn(true);
}

View File

@@ -16,6 +16,7 @@ public class DefaultStringRedisConnectionTxTests extends DefaultStringRedisConne
@Before
public void setUp() {
super.setUp();
connection.setDeserializePipelineAndTxResults(true);
when(nativeConnection.isQueueing()).thenReturn(true);
}

View File

@@ -19,7 +19,6 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.springframework.data.redis.SpinBarrier.waitFor;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.junit.After;
@@ -112,38 +111,4 @@ public class StringRedisTemplateTests {
});
assertEquals(value,"it");
}
@Test
public void testStringTemplateExecutePipelineResultsConverted() {
String result = redisTemplate.execute(new RedisCallback<String>() {
public String doInRedis(RedisConnection connection) {
StringRedisConnection stringConn = (StringRedisConnection) connection;
stringConn.openPipeline();
stringConn.set("foo", "bar");
stringConn.get("foo");
List<Object> results = stringConn.closePipeline();
return (String) results.get(0);
}
});
assertEquals("bar",result);
}
@Test
public void testStringTemplateExecutePipelineResultsNotConverted() {
final StringRedisTemplate template2 = new StringRedisTemplate(redisTemplate.getConnectionFactory());
template2.setDeserializePipelineAndTxResults(false);
template2.afterPropertiesSet();
String result = template2.execute(new RedisCallback<String>() {
public String doInRedis(RedisConnection connection) {
StringRedisConnection stringConn = (StringRedisConnection) connection;
stringConn.openPipeline();
stringConn.set("foo", "bar");
stringConn.get("foo");
List<Object> results = stringConn.closePipeline();
// Results should be in byte[], not deserialized to String
return template2.getStringSerializer().deserialize((byte[]) results.get(0));
}
});
assertEquals("bar",result);
}
}