我需要在Java代码中对Redis进行本地查询。是否有Java库或其他方法来做到这一点?
我需要这样的东西:
someRedisClient.execute("FT.SEARCH SOME_INDEX (@foo:bar*)")
我没有在lettuce, letusearch, redisson中找到这样的功能。
绝地武士有sendCommand
方法,它支持你想要的,但有一个警告。方法签名如下:
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*)");
是,命令参数是单独的字符串,而不是由空格连接。