Added pipeline support
This commit is contained in:
33
src/test/java/redis/clients/jedis/tests/PipeliningTest.java
Normal file
33
src/test/java/redis/clients/jedis/tests/PipeliningTest.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package redis.clients.jedis.tests;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.List;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import redis.clients.jedis.Jedis;
|
||||
import redis.clients.jedis.JedisPipeline;
|
||||
|
||||
public class PipeliningTest extends Assert {
|
||||
@Test
|
||||
public void pipeline() throws UnknownHostException, IOException {
|
||||
Jedis jedis = new Jedis("localhost");
|
||||
jedis.connect();
|
||||
jedis.auth("foobared");
|
||||
jedis.flushAll();
|
||||
|
||||
List<Object> results = jedis.pipelined(new JedisPipeline() {
|
||||
public void execute() {
|
||||
client.set("foo", "bar");
|
||||
client.get("foo");
|
||||
}
|
||||
});
|
||||
|
||||
assertEquals(2, results.size());
|
||||
assertEquals("OK", results.get(0));
|
||||
assertEquals("bar", results.get(1));
|
||||
}
|
||||
}
|
||||
@@ -43,7 +43,7 @@ public class ProtocolTest extends Assert {
|
||||
public void bulkReply() {
|
||||
InputStream is = new ByteArrayInputStream("$6\r\nfoobar\r\n".getBytes());
|
||||
Protocol protocol = new Protocol();
|
||||
String response = protocol.getBulkReply(new DataInputStream(is));
|
||||
String response = (String) protocol.read(new DataInputStream(is));
|
||||
assertEquals("foobar", response);
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public class ProtocolTest extends Assert {
|
||||
public void nullBulkReply() {
|
||||
InputStream is = new ByteArrayInputStream("$-1\r\n".getBytes());
|
||||
Protocol protocol = new Protocol();
|
||||
String response = protocol.getBulkReply(new DataInputStream(is));
|
||||
String response = (String) protocol.read(new DataInputStream(is));
|
||||
assertEquals(null, response);
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public class ProtocolTest extends Assert {
|
||||
public void singleLineReply() {
|
||||
InputStream is = new ByteArrayInputStream("+OK\r\n".getBytes());
|
||||
Protocol protocol = new Protocol();
|
||||
String response = protocol.getStatusCodeReply(new DataInputStream(is));
|
||||
String response = (String) protocol.read(new DataInputStream(is));
|
||||
assertEquals("OK", response);
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public class ProtocolTest extends Assert {
|
||||
public void integerReply() {
|
||||
InputStream is = new ByteArrayInputStream(":123\r\n".getBytes());
|
||||
Protocol protocol = new Protocol();
|
||||
int response = protocol.getIntegerReply(new DataInputStream(is));
|
||||
int response = (Integer) protocol.read(new DataInputStream(is));
|
||||
assertEquals(123, response);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public class ProtocolTest extends Assert {
|
||||
.getBytes());
|
||||
Protocol protocol = new Protocol();
|
||||
List<String> response = (List<String>) (List<?>) protocol
|
||||
.getMultiBulkReply(new DataInputStream(is));
|
||||
.read(new DataInputStream(is));
|
||||
List<String> expected = new ArrayList<String>();
|
||||
expected.add("foo");
|
||||
expected.add("bar");
|
||||
@@ -92,8 +92,8 @@ public class ProtocolTest extends Assert {
|
||||
"*4\r\n$3\r\nfoo\r\n+OK\r\n:1000\r\n*2\r\n$3\r\nfoo\r\n$3\r\nbar"
|
||||
.getBytes());
|
||||
protocol = new Protocol();
|
||||
List<Object> response2 = protocol
|
||||
.getMultiBulkReply(new DataInputStream(is));
|
||||
List<Object> response2 = (List<Object>) protocol
|
||||
.read(new DataInputStream(is));
|
||||
List<Object> expected2 = new ArrayList<Object>();
|
||||
expected2.add("foo");
|
||||
expected2.add("OK");
|
||||
@@ -111,8 +111,8 @@ public class ProtocolTest extends Assert {
|
||||
public void nullMultiBulkReply() {
|
||||
InputStream is = new ByteArrayInputStream("*-1\r\n".getBytes());
|
||||
Protocol protocol = new Protocol();
|
||||
List<String> response = (List<String>) (List<?>) protocol
|
||||
.getMultiBulkReply(new DataInputStream(is));
|
||||
List<String> response = (List<String>) protocol
|
||||
.read(new DataInputStream(is));
|
||||
assertNull(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package redis.clients.jedis.tests.benchmark;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Calendar;
|
||||
|
||||
import redis.clients.jedis.Jedis;
|
||||
import redis.clients.jedis.JedisPipeline;
|
||||
|
||||
public class PipelinedGetSetBenchmark {
|
||||
private static final int TOTAL_OPERATIONS = 100000;
|
||||
|
||||
public static void main(String[] args) throws UnknownHostException,
|
||||
IOException {
|
||||
Jedis jedis = new Jedis("localhost");
|
||||
jedis.connect();
|
||||
jedis.auth("foobared");
|
||||
|
||||
long begin = Calendar.getInstance().getTimeInMillis();
|
||||
|
||||
jedis.pipelined(new JedisPipeline() {
|
||||
public void execute() {
|
||||
for (int n = 0; n <= TOTAL_OPERATIONS; n++) {
|
||||
String key = "foo" + n;
|
||||
client.set(key, "bar" + n);
|
||||
client.get(key);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
long elapsed = Calendar.getInstance().getTimeInMillis() - begin;
|
||||
|
||||
jedis.disconnect();
|
||||
|
||||
System.out.println(((1000 * 2 * TOTAL_OPERATIONS) / elapsed) + " ops");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user