我在Java上使用tile38.com和lettuce.io。我正在尝试根据此处NEARBY fleet FENCE POINT 33.462 -112.268 6000
的文档输入链接描述发送自定义命令,但我不知道该怎么做。
我一直CommandType
在莴苣中使用,但是找不到发送的方法NEARBY
。有人知道我该怎么做吗?
谢谢
您有多个选项可以发送自定义命令:
使用自定义命令,您基本上可以定义一种实现ProtocolKeyword
接口的类型,该接口可以帮助您作为命令中涉及的所有关键字的单一参考点。您可以使用同步,异步或反应性API来调用命令:
enum MyKeywords implements ProtocolKeyword { NEARBY, FENCE, POINT; private final byte name[]; MyKeywords() { // cache the bytes for the command name. Reduces memory and cpu pressure when using commands. name = name().getBytes(); } @Override public byte[] getBytes() { return name; } } CommandArgsargs = new CommandArgs<>(codec).addKey(key).add(MyKeywords.FENCE).add("POINT").add(lon).add(lat) List
命令接口通过在Java接口上声明命令方法,为您提供了更高层次的抽象。它是由与您要调用的命令相匹配的方法签名声明的,并且比自定义命令更详细:
interface Tile38 { @Command("NEARBY ?0 FENCE POINT ?1 ?2") List
请注意,我对Tile38命令响应不熟悉。因此,所有代码都使用List
最通用的返回类型。
生菜文档:自定义命令。
生菜文档:命令界面。
生菜JavaDoc :BaseRedisCommands.dispatch(…)
。
生菜JavaDoc :CommandOutput
。