diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index a42a3f7..a0266d8 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -375,4 +375,8 @@ public class Client extends Connection { public void exec() throws JedisException { sendCommand("EXEC"); } + + public void watch(String key) throws JedisException { + sendCommand("WATCH", key); + } } \ No newline at end of file diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index a2f2fe6..a57440b 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -486,4 +486,9 @@ public class Jedis { client.disconnect(); } + public String watch(String key) throws JedisException { + client.watch(key); + return client.getStatusCodeReply(); + } + } diff --git a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java index bcfa00c..ec1713a 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java @@ -1,5 +1,7 @@ package redis.clients.jedis.tests.commands; +import java.io.IOException; +import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; @@ -72,4 +74,22 @@ public class TransactionCommandsTest extends Assert { expected.add(2); assertEquals(expected, response); } + + @Test + public void watch() throws JedisException, UnknownHostException, + IOException { + jedis.watch("mykey"); + String val = jedis.get("mykey"); + val = "foo"; + Transaction t = jedis.multi(); + + Jedis nj = new Jedis("localhost"); + nj.connect(); + nj.set("mykey", "bar"); + nj.disconnect(); + + t.set("mykey", val); + List resp = t.exec(); + assertEquals(new ArrayList(), resp); + } } \ No newline at end of file