diff --git a/docs/src/reference/docbook/appendix/appendix-command-reference.xml b/docs/src/reference/docbook/appendix/appendix-command-reference.xml
index bef5d3879e..a8c5aeb668 100644
--- a/docs/src/reference/docbook/appendix/appendix-command-reference.xml
+++ b/docs/src/reference/docbook/appendix/appendix-command-reference.xml
@@ -94,7 +94,7 @@
PEXIPRE
X
PEXPIREAT
X
PING
X
- PSETEX
-
+ PSETEX
X
PSUBSCRIBE
X
PTTL
X
PUBLISH
X
diff --git a/gradle.properties b/gradle.properties
index f09fb8eb53..6a57455f5f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -4,7 +4,7 @@ jredisVersion=06052013
jedisVersion=2.4.1
springVersion=3.2.8.RELEASE
log4jVersion=1.2.17
-version=1.3.0.BUILD-SNAPSHOT
+version=1.3.0.DATAREDIS-271-SNAPSHOT
srpVersion=0.7
jacksonVersion=1.8.8
fasterXmlJacksonVersion=2.2.0
diff --git a/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java b/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java
index fdb338ce3d..9d2805c662 100644
--- a/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java
+++ b/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java
@@ -735,6 +735,15 @@ public void setEx(byte[] key, long seconds, byte[] value) {
delegate.setEx(key, seconds, value);
}
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.data.redis.connection.RedisStringCommands#pSetEx(byte[], long, byte[])
+ */
+ @Override
+ public void pSetEx(byte[] key, long milliseconds, byte[] value) {
+ delegate.pSetEx(key, milliseconds, value);
+ }
+
public Boolean setNX(byte[] key, byte[] value) {
Boolean result = delegate.setNX(key, value);
if (isFutureConversion()) {
@@ -1695,6 +1704,15 @@ public void setEx(String key, long seconds, String value) {
delegate.setEx(serialize(key), seconds, serialize(value));
}
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.data.redis.connection.StringRedisConnection#pSetEx(java.lang.String, long, java.lang.String)
+ */
+ @Override
+ public void pSetEx(String key, long seconds, String value) {
+ pSetEx(serialize(key), seconds, serialize(value));
+ }
+
public Boolean setNX(String key, String value) {
Boolean result = delegate.setNX(serialize(key), serialize(value));
if (isFutureConversion()) {
diff --git a/src/main/java/org/springframework/data/redis/connection/RedisStringCommands.java b/src/main/java/org/springframework/data/redis/connection/RedisStringCommands.java
index afc951cde6..f362be7511 100644
--- a/src/main/java/org/springframework/data/redis/connection/RedisStringCommands.java
+++ b/src/main/java/org/springframework/data/redis/connection/RedisStringCommands.java
@@ -87,6 +87,17 @@ public enum BitOperation {
*/
void setEx(byte[] key, long seconds, byte[] value);
+ /**
+ * Set the {@code value} and expiration in {@code milliseconds} for {@code key}.
+ *
+ * @see http://redis.io/commands/psetex
+ * @param key
+ * @param milliseconds
+ * @param value
+ * @since 1.3
+ */
+ void pSetEx(byte[] key, long milliseconds, byte[] value);
+
/**
* Set multiple keys to multiple values using key-value pairs provided in {@code tuple}.
*
diff --git a/src/main/java/org/springframework/data/redis/connection/StringRedisConnection.java b/src/main/java/org/springframework/data/redis/connection/StringRedisConnection.java
index ed0a62deb2..20657682e1 100644
--- a/src/main/java/org/springframework/data/redis/connection/StringRedisConnection.java
+++ b/src/main/java/org/springframework/data/redis/connection/StringRedisConnection.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2011-2013 the original author or authors.
+ * Copyright 2011-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,6 +29,7 @@
* Uses a {@link RedisSerializer} underneath to perform the conversion.
*
* @author Costin Leau
+ * @author Christoph Strobl
* @see RedisCallback
* @see RedisSerializer
* @see StringRedisTemplate
@@ -93,6 +94,17 @@ public interface StringTuple extends Tuple {
void setEx(String key, long seconds, String value);
+ /**
+ * Set the {@code value} and expiration in {@code milliseconds} for {@code key}.
+ *
+ * @see http://redis.io/commands/psetex
+ * @param key
+ * @param seconds
+ * @param value
+ * @since 1.3
+ */
+ void pSetEx(String key, long milliseconds, String value);
+
void mSetString(Map tuple);
Boolean mSetNXString(Map tuple);
diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java
index e6ad85f06c..67460b7541 100644
--- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java
+++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java
@@ -331,6 +331,10 @@ private List