/*** 限制网站访客访问频率(例如:1分钟最多访问10次),其中: 访客通过IP标识,即同一个IP在1分钟内仅能访问10次*/@Testpublic voidtest4(){final String ip = "127.0.0.1";

Jedis redis= null;//模拟同一个用户连续访问20次

for(int i =0;i <20;i ++){boolean t =validate(ip);if(t ){

System. out.println("恭喜你,购票成功!" +i );

}else{//获取当前ip过期时间

redis =getRedis();break;

}

}while(true &&redis.ttl(ip)>0){

System. out.println("抱歉,你访问过度频繁,请" +redis .ttl(ip )+"秒后再来访问!");try{

Thread. sleep(1000);

}catch(InterruptedException e ) {

e.printStackTrace();

}

}

System. out.println("你可以再次访问了");

}/***

*@paramip

*@returntrue: 可以访问,false: 表示已经达到最大上线*/

public booleanvalidate( String ip ) {

Jedis jedis=getRedis();

String value=jedis.get( ip);if(value ==null||value.length()==0){ //第一次访问

jedis.setex( ip, 60,String. valueOf(0));

}else{int v =Integer.parseInt (value );if(v >=10){return false;

}

}

jedis.incr( ip);return true;

}/***@return

*/

publicJedis getRedis() {

jedisPool=getJedisPool();

Jedis jedis=jedisPool.getResource();returnjedis ;

}/****/

publicJedisPool getJedisPool() {

JedisPoolConfig poolConfig= newJedisPoolConfig();//控制一个pool最多有多少个 jedis实例。

poolConfig.setMaxTotal(1000);//控制一个pool最多有多少个状态为idle(空闲的)的 jedis实例。

poolConfig.setMaxIdle(10);//表示当borrow(引入)一个 jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;

poolConfig.setMaxWaitMillis(200000);//在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的 jedis实例均是可用的;

poolConfig.setTestOnBorrow(true);return newJedisPool(poolConfig, host, port);

}

redis 失效时间单位是秒还是毫秒_【redis中键的生存时间(expire) 】相关推荐

  1. redis 失效时间单位是秒还是毫秒_经常用Redis,这些坑你知道吗?

    文章转载自二马读书,作者二马读书 作者简介:曾任职于阿里巴巴,每日优鲜等互联网公司,任技术总监,15年电商互联网经历. 近些年,Redis凭借在性能.稳定性和高可扩展性上的卓越表现,基本上已经成了互联 ...

  2. redis 失效时间单位是秒还是毫秒_redis分布式锁的这些坑,我怀疑你是假的开发...

    摘要:用锁遇到过哪些问题? 一.白话分布式 什么是分布式,用最简单的话来说,就是为了较低单个服务器的压力,将功能分布在不同的机器上面:就比如: 本来一个程序员可以完成一个项目:需求->设计-&g ...

  3. redis 失效时间单位是秒还是毫秒_Redis有效时间设置及时间过期处理

    本文对redis的过期处理机制做个简单的概述,让大家有个基本的认识. Redis中有个设置时间过期的功能,即对存储在redis数据库中的值可以设置一个过期时间.作为一个缓存数据库,这是非常实用的.如我 ...

  4. redis 失效时间单位是秒还是毫秒_redis设置过期时间

    一般主要包括4种处理过期方,其中expire都是以秒为单位,pexpire都是以毫秒为单位的. 1 EXPIRE key seconds //将key的生存时间设置为ttl秒 2 PEXPIRE ke ...

  5. redis 失效时间单位是秒还是毫秒_redis键过期时间的应用

    expire 设置生存时间(单位/秒) pexpire设置生存时间(单位/毫秒) ttl/pttl 查看键的剩余生存时间 persist 取消生存时间 expireat [key] unix时间戳13 ...

  6. redis 失效时间单位是秒还是毫秒_Redis 事务与过期时间详细介绍

    Redis 事务与过期时间详细介绍 一.Redis事务: Redis中支持事务,事务即为当我们需要执行几条命令时,要么这几条命令都不执行,要么都执行: 1.开始事务写入: multi 2.然后写入命令 ...

  7. 多少秒算长镜头_电影中什么是长镜头画面(9个经典长镜头)

    长镜头,俗称"一镜到底".顾名思义是指用比较长的时间,对一场戏(一个场景)进行连续性拍摄,从而形成时间和空间上的连贯性.长镜头一般分为运动长镜头.固定长镜头.景深长镜头和变焦长镜头 ...

  8. 多少秒算长镜头_电影中几秒以上算长镜头

    展开全部 长镜头并没32313133353236313431303231363533e78988e69d8331333431356661有绝对的标准,是相对而言较长的单一镜头.通常用来表达导演的特定构 ...

  9. Redis设计与实现详解二:Redis数据库实现

    Redis设计与实现详解一:数据结构与对象 Redis设计与实现详解三:多机功能实现 Redis设计与实现详解四:其他单机功能 数据库 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态 ...

最新文章

  1. 【C语言】控制台窗口图形界面编程(一)句柄和文本属性
  2. CSS自定义消息提示
  3. BugkuCTF-WEB题源码
  4. Wolf QOS 教程
  5. Lc695-岛屿的最大面积
  6. 在docker中配置apt工具与python的源均为国内源
  7. Linux 桌面版为什么打不过 Window?Linus 现身说法!
  8. Windows Server 2012 配置 Remote Desktop Service VDI
  9. CAD迷你看图V9.5版
  10. Deepin安装到移动硬盘
  11. 一秒知道光纤、光缆、跳线、尾纤、连接器类型
  12. 资深 iOS 开发工程师教你5 道题全面考察候选人
  13. STM32的内部参照电压VREFINT(1.2V)和ADC参考电压Vref+如何区分呢
  14. 说得清的Epoll原理
  15. iphonex正面图_iPhoneX高清全方位图赏
  16. evo评测VINS-MONO---代码修改、数据格式转换、数据测试
  17. JAVA并发编程-synchronized-脏读
  18. jQuery方法返回jQuery对象还是DOM对象
  19. 静态手势识别总体方案
  20. 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!

热门文章

  1. php中MySQL数据库导入与导出_Mysql数据库导出和导入
  2. 九个console命令调试JS
  3. onclick 传参,用转义符进行转义。
  4. Spring boot验证码前后端验证
  5. java在面板中点击按钮后弹出对话框
  6. Bootstrap3基础 下载bootstrap3压缩包和相应的jQuery文件
  7. [BZOJ 2957]楼房重建(线段树)
  8. 使用OpenSSL为支付宝生成RSA私钥
  9. 【转】Android 轻松实现语音识别
  10. 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界:光照与材质专场...