class RedisBasedLock implements Lock {

    @Override
    public Future<Boolean> releaseLock(String lock, String token) {
        Future<Boolean> future = Future.future();
        List<String> keys = Collections.singletonList(buildLockKey(lock));
        List<String> arguments = Collections.singletonList(token);
        ReleaseLockRedisCommand cmd = new ReleaseLockRedisCommand(releaseLockLuaScriptState,
                keys, arguments, redisClient, log, future);
        cmd.exec(0);
        return future;
    }

    public  RedisBasedLock(RedisClient redisClient);

}