@@ -431,15 +431,15 @@ public abstract class JedisConverters extends Converters {
|
||||
return paramsToUse.keepttl();
|
||||
}
|
||||
|
||||
if (!expiration.isPersistent()) {
|
||||
if (expiration.getTimeUnit() == TimeUnit.MILLISECONDS) {
|
||||
return paramsToUse.px(expiration.getExpirationTime());
|
||||
}
|
||||
|
||||
return paramsToUse.ex((int) expiration.getExpirationTime());
|
||||
if (expiration.isPersistent()) {
|
||||
return paramsToUse;
|
||||
}
|
||||
|
||||
return params;
|
||||
if (expiration.getTimeUnit() == TimeUnit.MILLISECONDS) {
|
||||
return expiration.isUnixTimestamp() ? paramsToUse.pxAt(expiration.getExpirationTime()) : paramsToUse.px(expiration.getExpirationTime());
|
||||
}
|
||||
|
||||
return expiration.isUnixTimestamp() ? paramsToUse.exAt(expiration.getConverted(TimeUnit.SECONDS)) : paramsToUse.ex(expiration.getConverted(TimeUnit.SECONDS));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -699,11 +699,19 @@ public abstract class LettuceConverters extends Converters {
|
||||
} else if (!expiration.isPersistent()) {
|
||||
|
||||
switch (expiration.getTimeUnit()) {
|
||||
case SECONDS:
|
||||
args.ex(expiration.getExpirationTime());
|
||||
case MILLISECONDS:
|
||||
if (expiration.isUnixTimestamp()) {
|
||||
args.pxAt(expiration.getConverted(TimeUnit.MILLISECONDS));
|
||||
} else {
|
||||
args.px(expiration.getConverted(TimeUnit.MILLISECONDS));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
args.px(expiration.getConverted(TimeUnit.MILLISECONDS));
|
||||
if (expiration.isUnixTimestamp()) {
|
||||
args.exAt(expiration.getConverted(TimeUnit.SECONDS));
|
||||
} else {
|
||||
args.ex(expiration.getConverted(TimeUnit.SECONDS));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -740,7 +748,7 @@ public abstract class LettuceConverters extends Converters {
|
||||
return args;
|
||||
}
|
||||
|
||||
if(expiration.isPersistent()) {
|
||||
if (expiration.isPersistent()) {
|
||||
return args.persist();
|
||||
}
|
||||
|
||||
|
||||
@@ -213,6 +213,22 @@ class JedisConvertersUnitTests {
|
||||
assertThat(toString(JedisConverters.toSetCommandExPxArgument(Expiration.milliseconds(100)))).isEqualTo("px 100");
|
||||
}
|
||||
|
||||
@Test // GH-2050
|
||||
void convertsExpirationToSetPXAT() {
|
||||
|
||||
assertThat(JedisConverters.toSetCommandExPxArgument(Expiration.unixTimestamp(10, TimeUnit.MILLISECONDS)))
|
||||
.extracting(SetParams::toString)
|
||||
.isEqualTo(SetParams.setParams().pxAt(10).toString());
|
||||
}
|
||||
|
||||
@Test // GH-2050
|
||||
void convertsExpirationToSetEXAT() {
|
||||
|
||||
assertThat(JedisConverters.toSetCommandExPxArgument(Expiration.unixTimestamp(1, TimeUnit.MINUTES)))
|
||||
.extracting(SetParams::toString)
|
||||
.isEqualTo(SetParams.setParams().exAt(60).toString());
|
||||
}
|
||||
|
||||
@Test // DATAREDIS-316, DATAREDIS-749
|
||||
void toSetCommandNxXxOptionShouldReturnNXforAbsent() {
|
||||
assertThat(toString(JedisConverters.toSetCommandNxXxArgument(SetOption.ifAbsent()))).isEqualTo("nx");
|
||||
|
||||
@@ -39,8 +39,10 @@ import org.springframework.data.redis.connection.RedisClusterNode.Flag;
|
||||
import org.springframework.data.redis.connection.RedisClusterNode.LinkState;
|
||||
import org.springframework.data.redis.connection.RedisStringCommands.SetOption;
|
||||
import org.springframework.data.redis.connection.RedisZSetCommands;
|
||||
import org.springframework.data.redis.connection.jedis.JedisConverters;
|
||||
import org.springframework.data.redis.core.types.Expiration;
|
||||
import org.springframework.data.redis.core.types.RedisClientInfo;
|
||||
import redis.clients.jedis.params.SetParams;
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
@@ -136,6 +138,20 @@ class LettuceConvertersUnitTests {
|
||||
assertThat((Boolean) getField(args, "xx")).isEqualTo(Boolean.FALSE);
|
||||
}
|
||||
|
||||
@Test // GH-2050
|
||||
void convertsExpirationToSetPXAT() {
|
||||
|
||||
assertThatCommandArgument(LettuceConverters.toSetArgs(Expiration.unixTimestamp(10, TimeUnit.MILLISECONDS), null))
|
||||
.isEqualTo(SetArgs.Builder.pxAt(10));
|
||||
}
|
||||
|
||||
@Test // GH-2050
|
||||
void convertsExpirationToSetEXAT() {
|
||||
|
||||
assertThatCommandArgument(LettuceConverters.toSetArgs(Expiration.unixTimestamp(1, TimeUnit.MINUTES), null))
|
||||
.isEqualTo(SetArgs.Builder.exAt(60));
|
||||
}
|
||||
|
||||
@Test // DATAREDIS-316
|
||||
void toSetArgsShouldSetPxForMilliseconds() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user