diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/RedisCommands.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/RedisCommands.java index 6e1497c4e..8b227f9d6 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/RedisCommands.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/RedisCommands.java @@ -44,6 +44,8 @@ public interface RedisCommands extends RedisTxCommands, RedisStringCommands, Red Boolean expire(byte[] key, int seconds); + Boolean expireAt(byte[] key, long unixTime); + Boolean persist(byte[] key); Integer ttl(byte[] key); diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java index 25672176b..e878174df 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java @@ -190,6 +190,19 @@ public class JedisConnection implements RedisConnection { } } + @Override + public Boolean expireAt(byte[] key, long unixTime) { + try { + if (isQueueing()) { + transaction.expireAt(key, unixTime); + return null; + } + return (jedis.expireAt(key, unixTime) == 1); + } catch (Exception ex) { + throw convertJedisAccessException(ex); + } + } + @Override public Collection keys(byte[] pattern) { try { diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jredis/JredisConnection.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jredis/JredisConnection.java index 94bced134..2cc0810d1 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jredis/JredisConnection.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jredis/JredisConnection.java @@ -134,6 +134,15 @@ public class JredisConnection implements RedisConnection { } } + @Override + public Boolean expireAt(byte[] key, long unixTime) { + try { + return jredis.expireat(JredisUtils.convert(charset, key), unixTime); + } catch (RedisException ex) { + throw JredisUtils.convertJredisAccessException(ex); + } + } + @Override public Collection keys(byte[] pattern) { try {