/// <summary> /// 添加名单 /// </summary> /// <param name="rosterType">名单类型</param> /// <param name="policy">策略</param> /// <param name="policyKey">策略Key</param> /// <param name="expiry">过期时间</param> /// <param name="item">项目</param> /// <remarks>因为要保存过期时间,所以名单通过Redis 有序集合(sorted set)来存储,score来存储过期时间Ticks</remarks> public async Task AddRosterAsync(RosterType rosterType, string api, Policy policy, string policyKey, TimeSpan?expiry, params string[] item) { //保存名单 await _storage.AddRosterAsync(rosterType, api, policy, policyKey, expiry, item); //从反名单中移除 await _storage.RemoveRosterAsync(rosterType == RosterType.BlackList?RosterType.WhiteList : RosterType.BlackList, api, policy, policyKey, item); //清除缓存 await _cache.ClearRosterListCacheAsync(rosterType, api, policy, policyKey); await _cache.ClearRosterListCacheAsync(rosterType == RosterType.BlackList?RosterType.WhiteList : RosterType.BlackList, api, policy, policyKey); }