local key_prefix = ARGV local key_delimeter = ARGV local subscriber = ARGV

redis.call(“persist”, key_subscription_ids_by_subscriber(key_prefix, key_delimeter, subscriber))

local subscription_ids = subscription_ids_for_subscriber(key_prefix, key_delimeter, subscriber, 0, “+inf”)

local i = 1 while(i <= subscription_ids) do

local subscription_id = subscription_ids[i]
redis.call("zadd", key_subscribers_by_subscription_id(key_prefix, key_delimeter, subscription_id), "+inf", subscriber)
persist_subscription(key_prefix, key_delimeter, subscription_id)
i = i + 1

end