public static RedisKey XOr(params Event[] events)
{
var database = SharedCache.Instance.GetAnalyticsWriteConnection().GetDatabase(SharedCache.Instance.Db);
// get the keys for the events (need to group subsets using TemporarilyOrKeys)
var keys = events.Select(@event => TemporarilyOrKeys(database, @event.RedisKeys())).ToList();
RedisKey tmpKey = TempKey(events);
BitwiseAnalytics.BitwiseXOr(database, tmpKey, keys.ToArray(), TimeSpan.FromHours(1));
return tmpKey;
}