• 面试题之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"));
                    }
                }
                //调用登录即可
            }

    有追求,才有动力!

    向每一个软件工程师致敬!

    by wujf

    mail:921252375@qq.com

  • 相关阅读:
    Gym102028L
    CF985G
    三元环 & 四元环计数 学习笔记
    Hall 定理 学习笔记
    CF36E
    CF1110G
    P6071
    可持久化数据结构 学习笔记
    多项式全家桶
    c++ 编译zlib
  • 原文地址:https://www.cnblogs.com/wujf/p/5206354.html
Copyright © 2020-2023  润新知