class NotificationExpirationManagement implements RedisExpirationStrategy {

  Set<byte[]> getKeysToExpire(byte[] key) {
    // In Redis 3.2 we use SPOP to get bulk of keys to expire
    if (!redis.supportsMultiSpop()) {
      return redis.transaction(key, smembersAndDel(key)).get();
    } else {
      Set<byte[]> res = redis.spop(key, SPOP_BULK_SIZE);
      if (res == null || res.isEmpty() || res.size() < SPOP_BULK_SIZE) {
        redis.del(key);
      }
      return res;
    }
  }

    NotificationExpirationManagement(RedisFacade redis, RedisSessionRepository redisSession, String namespace,
      String owner, String keyPrefix, boolean sticky);

}