Replicator replicator = new RedisReplicator("127.0.0.1", 6379, Configuration.defaultSetting());
replicator.addRdbListener(new RdbListener.Adaptor() {
@Override
public void handle(Replicator replicator, KeyValuePair<?> kv) {
System.out.println(kv);
}
});
replicator.addCommandListener(new CommandListener() {
@Override
public void handle(Replicator replicator, Command command) {
System.out.println(command);
}
});
replicator.open();
// 实现未包含的命令
public class YourAppendCommand implements Command {
public final String key;
public final String value;
public YourAppendCommand(String key, String value) {
this.key = key;
this.value = value;
}
}
// 为命令写一个解析器
public class YourAppendParser implements CommandParser<YourAppendCommand> {
@Override
public YourAppendCommand parse(Object command) {
return new YourAppendCommand(new String((byte) command[1], UTF_8), new String((byte) command[2], UTF_8));
}
}
// 注册命令解析器到 Replicator 上
Replicator replicator = new RedisReplicator("127.0.0.1",6379,Configuration.defaultSetting());
replicator.addCommandParser(CommandName.name("APPEND"),new YourAppendParser());
// Handle 此命令的事件
replicator.addCommandListener(new CommandListener() {
@Override
public void handle(Replicator replicator, Command command) {
if(command instanceof YourAppendCommand){
YourAppendCommand appendCommand = (YourAppendCommand)command;
// your code goes here
}
}
});
本文为 @ 21CTO 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。