赶紧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,遇到问题的可能没那么多人。

09-21 00:13