面試題之redis實現限制1小時內每用戶Id最多只能登錄5次


面試題之redis實現限制1小時內每用戶Id最多只能登錄5次

 

        /// <summary>
        /// redis實現限制1小時內每用戶Id最多只能登錄5次
        /// </summary>
        /// <param name="userid">用戶id</param>
        public static void CheckLogin(string userid)
        {
            var listCount = redisClient.GetListCount(userid);
            if (listCount < 5)
            {
                redisClient.AddItemToList(userid, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            }
            else
            {
                var now = DateTime.Now;
                var first = Convert.ToDateTime(redisClient.GetItemFromList(userid, 0));
                var tem = (now - first).TotalHours;
                if (tem < 1)
                {
                    throw new Exception("登錄過於頻繁,請稍后重試!");
                }
                else
                {
                    redisClient.RemoveStartFromList(userid);
                    redisClient.AddItemToList(userid, now.ToString("yyyy-MM-dd HH:mm:ss"));
                }
            }
            //調用登錄即可
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM