阿狸先森|聊聊claudb的server command( 二 )

slaves(Database adminDatabase) {DatabaseValue value = http://kandian.youth.cn/index/adminDatabase.getOrDefault(safeKey("slaves"), DatabaseValue.EMPTY_SET);ImmutableList set = value.getSet().asList().sort(SafeString::compareTo);return set.map(SafeString::toString).map(slave -> slave.split(":")).map(slave -> array(string(slave[0]), string(slave[1]), string("0"))).asList();}}

  • RoleCommand实现了DBCommand接口 , 其execute方法先获取serverState及adminDatabase , 然后根据serverState.isMaster()返回master(adminDatabase)或slave(adminDatabase)
FlushDBCommandclaudb-1.7.1/src/main/java/com/github/tonivade/claudb/command/server/FlushDBCommand.java
【阿狸先森|聊聊claudb的server command】@Command("flushdb")public class FlushDBCommand implements DBCommand {?@Overridepublic RedisToken execute(Database db, Request request) {db.clear();return responseOk();}}
  • FlushDBCommand实现了DBCommand接口 , 其execute方法执行db.clear()
DatabaseSizeCommandclaudb-1.7.1/src/main/java/com/github/tonivade/claudb/command/server/DatabaseSizeCommand.java
@Command("dbsize")public class DatabaseSizeCommand implements DBCommand {@Overridepublic RedisToken execute(Database db, Request request) {return integer(db.size());}}
  • DatabaseSizeCommand实现了DBCommand接口 , 其execute方法返回integer(db.size())
小结claudb server相关的command有SelectCommand、SyncCommand、SlaveOfCommand、RoleCommand、FlushDBCommand、DatabaseSizeCommand
doc
  • SelectCommand


推荐阅读