赶紧mark一下,Jedis2.8.0到2.9.0版本有一个问题,由于在springboot-2.0.0.REALSE版本中默认使用的2.9.0的版本,所以肯定有人踩过这个坑。一层一层追代码可以看到,底层使用的是Jedis的BinaryJedisCluster类,代码摘录如下:
public class BinaryJedisCluster implements BasicCommands, BinaryJedisClusterCommands,
MultiKeyBinaryJedisClusterCommands, JedisClusterBinaryScriptingCommands, Closeable {
.......
@Override
public Long pexpireAt(final byte[] key, final long millisecondsTimestamp) {
return new JedisClusterCommand<Long>(connectionHandler, maxAttempts) {
@Override
public Long execute(Jedis connection) {
return connection.pexpire(key, millisecondsTimestamp);
}
}.runBinary(key);
}
......
}
pexpireAt方法中调用了pexpire方法,坑到家了,2.9.1版本即修复了该问题。
当然在Spingboot中Redis推荐使用lettuce而不使用Jedis,遇到问题的可能没那么多人。