面试题之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 < )
{
redisClient.AddItemToList(userid, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
else
{
var now = DateTime.Now;
var first = Convert.ToDateTime(redisClient.GetItemFromList(userid, ));
var tem = (now - first).TotalHours;
if (tem < )
{
throw new Exception("登录过于频繁,请稍后重试!");
}
else
{
redisClient.RemoveStartFromList(userid);
redisClient.AddItemToList(userid, now.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
//调用登录即可
}
面试题之redis实现限制1小时内每用户Id最多只能登录5次的更多相关文章
- 透过面试题掌握Redis【持续更新中】
本文已收录到1.1K Star的Github开源项目<面试指北>,想要了解更多内容,大家可以看一看这个项目,希望大家帮忙给一个star,谢谢了! <面试指北>项目地址:http ...
- Redis如何存储和计算一亿用户的活跃度
1 前段时间,在网上看到一道面试题: 如何用redis存储统计1亿用户一年的登陆情况,并快速检索任意时间窗口内的活跃用户数量. 觉得很有意思,就仔细想了下 .并做了一系列实验,自己模拟了下 .还是有点 ...
- 在半小时内从无到有开发并调试一款Chrome扩展(Chrome插件/谷歌浏览器插件)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_120 就在不久之前,我们目前这个毕业班的班长那日同学和我说,他正在公司开发Chrome扩展,看起来很高大上的技术,实际开发却非常简 ...
- 使用Symfony 2在三小时内开发一个寻人平台
简介 Symfony2是一个基于PHP语言的Web开发框架,有着开发速度快.性能高等特点.但Symfony2的学习曲线也比 较陡峭,没有经验的初学者往往需要一些练习才能掌握其特性. 本文通过一个快速开 ...
- c# 根据唯一码,存缓存 实现12小时内 阅读量+1
需求:某一个详细页面需要实现用户 12小时内阅读量+1, 实现思路;得到一个唯一码的机器码,不管是否用户登录了 都有这个码,然后存到缓存里面 最后判断时间+12小时 是否超过当前时间 string ...
- 如何在一小时内更新100篇文章?-Evernote Sync插件介绍
上一篇"手把手教你制作微信小程序,开源.免费.快速搞定",已经教会你如何快速制作一个小程序,但作为资讯类小程序,内容不可少,并且还需要及时更新. 但是,如果让你复制粘贴,可能还需要 ...
- MySQL5.6数据库8小时内无请求自动断开连接
问题: 最近的项目中,发现Mysql数据库在8个小时内,没有请求时,会自动断开连接,这是MySQL服务器的问题.The last packet successfully received from t ...
- 怎样在两小时内搞定 OpenStack 部署?(转)
怎样在两小时内搞定 OpenStack 部署? OpenStack的安装是一个难题,组件众多,非常麻烦.如果手工部署OpenStack,可能需要好几天,使用RDO,就是几个命令,再加一两个小时的等待. ...
- 一个小时内学习SQLite数据库
一个小时内学习SQLite数据库 2012-05-11 10:24 红薯 OSCHINA 字号:T | T SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. ...
随机推荐
- 火狐对innerHtml的支持问题
最新的Firefox是支持innerHTML的,但是不支持innerText.解决办法是将innerText换成textContent. $.getJSON("/api/Articles&q ...
- 什么是IDOC,以及IDOC的步骤
创建IDOC: 第一步:WE31 创建IDOC所包含的字段. 第二步:WE30 创建IDOC 把Segment分配给IDOC 第三步:WE81 创建信息类型 第四步:WE82 把 ...
- hdu 5455 Fang Fang 坑题
Fang Fang Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5455 ...
- iOS UICollectionView 入门 07 点击cell放大图片
这一节,我们实现通过点击图片将图片放大显示的功能. 首先我们创建一个名为FlickrPhotoViewConroller的类,这个类继承于UIViewController. 改动头文件内容例如以下: ...
- JFinal使用笔记1-部署demo项目到本地tomcat
http://my.oschina.net/u/173975/blog/110261 尝试用JFinal开发个开源的社团管理系统,把开发过程中遇到的问题和解决办法记下来,以供参考. 部署jfinal_ ...
- 实现android activity之间的跳转
android程序一般不会只有一个activity,会碰到activity之间的跳转.以下是使用Intent做应用程序内部的activity做跳转.比如,应用程序第一个activity是: 点击“下一 ...
- [React Native + Firebase] React Native: Real time database with Firebase -- setup & CRUD
Install: npm i --save firebase // v3.2.1 Config Firebase: First we need to require Firebase: import ...
- jquery插件开发(checkbox全选的简单实例)
html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- UIWebView的使用,简单浏览器的实现
#import "ViewController.h" @interface ViewController () <UIWebViewDelegate> @propert ...
- PAT 1008
1008. Elevator (20) The highest building in our city has only one elevator. A request list is made u ...