class SimpleRedisLock extends AbstractSimpleLock {

  @Override
  protected String acquire(final String key, final String storeId, final String token, final long expiration) {
    final var singletonKeyList = Collections.singletonList(storeId + ":" + key);
    final var locked = stringRedisTemplate.execute(lockScript, singletonKeyList, token, String.valueOf(expiration));
    log.debug("Tried to acquire lock for key {} with token {} in store {}. Locked: {}", key, token, storeId, locked);
    return locked ? token : null;
  }

  public  SimpleRedisLock(final Supplier<String> tokenSupplier, final StringRedisTemplate stringRedisTemplate);

}