如何在 Java 中执行纯 Redis 查询

How to execute plain Redis queries in Java

我需要在 Java 代码中对 Redis 进行原生查询。 是否有 Java 库或其他方法可以做到这一点?

我需要这样的东西:

someRedisClient.execute("FT.SEARCH SOME_INDEX (@foo:bar*)")

我在lettuce、lettusearch、redisson中没有找到这样的功能。

JedissendCommand 方法支持你想要的但有一个警告。方法签名如下:

Object sendCommand(ProtocolCommand cmd, byte[]... args)
Object sendCommand(ProtocolCommand cmd, String... args)

如您所见,您必须有一个代表实际命令的 ProtocolCommand 的实现。通常由 enum.

完成
public enum Command implements ProtocolCommand {
  
  FT_SEARCH("FT.SEARCH");
  
  private final byte[] raw;
  
  private Command(String str) {
    raw = str.getBytes();
  }
  
  @Override
  public byte[] getRaw() {
    return raw;
  }
}

之后,

jedis.sendCommand(Command.FT_SEARCH, "SOME_INDEX", "(@foo:bar*)");

是的,命令参数是单独的字符串,而不是由 space 连接而成。