Rdis间隔限制
电脑版发表于:2020/3/31 16:10
1.public static bool SpanLimit(string key, long seconds) { string redisKey = $"{key}_redis"; if (Redis.StringHelper.StringSetIfNotExists<int>(redisKey, 1)) { Redis.KeyHelper.KeyExpire(redisKey, TimeSpan.FromSeconds(seconds)); return false; } else { return true; } } 2.日调用次数限制 public static bool CallDayTimesLimit(string key, int limitCount) { key = $"{key}_{DateTime.Now.ToString("yy-MM-dd")}"; int count = CommonService.Redis.StringHelper.StringGet<int>(key); if (count > limitCount) { return true; } count = count + 1; CommonService.Redis.StringHelper.StringSet<int>(key, count, CommonHelper.GetDayTimeLeft().Add(TimeSpan.FromMinutes(10))); return false; } 3.获取日调用次数限制 public static int GetDayTimesLimit(string key) { key = $"{key}_{DateTime.Now.ToString("yy-MM-dd")}"; int count = CommonService.Redis.StringHelper.StringGet<int>(key); return count; } public static int SubTimes(string key, int num = 1) { key = $"{key}_{DateTime.Now.ToString("yy-MM-dd")}"; int count = CommonService.Redis.StringHelper.StringGet<int>(key); count = count - num; CommonService.Redis.StringHelper.StringSet<int>(key, count, CommonHelper.GetDayTimeLeft().Add(TimeSpan.FromMinutes(10))); return count; } public static int AddTimes(string key, int num = 1) { key = $"{key}_{DateTime.Now.ToString("yy-MM-dd")}"; int count = CommonService.Redis.StringHelper.StringGet<int>(key); count = count + num; CommonService.Redis.StringHelper.StringSet<int>(key, count, CommonHelper.GetDayTimeLeft().Add(TimeSpan.FromMinutes(10))); return count; }