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:
@@ -88,6 +88,7 @@ public abstract class AbstractConnectionIntegrationTests {
|
||||
public void setUp() {
|
||||
byteConnection = connectionFactory.getConnection();
|
||||
connection = new DefaultStringRedisConnection(byteConnection);
|
||||
((DefaultStringRedisConnection)connection).setDeserializePipelineAndTxResults(true);
|
||||
initConnection();
|
||||
}
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ public class DefaultStringRedisConnectionPipelineTests extends DefaultStringRedi
|
||||
@Before
|
||||
public void setUp() {
|
||||
super.setUp();
|
||||
connection.setDeserializePipelineAndTxResults(true);
|
||||
when(nativeConnection.isPipelined()).thenReturn(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ public class DefaultStringRedisConnectionTxTests extends DefaultStringRedisConne
|
||||
@Before
|
||||
public void setUp() {
|
||||
super.setUp();
|
||||
connection.setDeserializePipelineAndTxResults(true);
|
||||
when(nativeConnection.isQueueing()).thenReturn(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user