private int countArgs(RedisCommand<?, ?, ?> command) {
        CommandArgs<?, ?> args = command.getArgs();
        if (args == null) {
            return 0;
        }
        int count = 0;
        ProtocolKeyword type = command.getType();
        count += type == CommandType.EVAL || type == CommandType.EVALSHA
                // Add 2, one for script, another for the length of keys
                ? (int) CommandArgsUtil.getLongArgument(args, 1) + 2
                : args.count();
        return count;
    }
@author James Chen
@implNote We don't use MessageToByteEncoder because they will release the input buffer while we
          need to reuse the input buffer to compose a composite buffer.
@see CommandEncoder
@see CommandArgsUtil
turms-server-common/src/main/java/im/turms/server/common/storage/redis/command/TurmsCommandEncoder.java