您的位置:首页 > 数据库 > Redis

面试题之redis实现限制1小时内每用户Id最多只能登录5次

2016-02-22 10:30 2286 查看
面试题之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"));
}
}
//调用登录即可
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: