Ⅰ java 如何设置临时文件有效期
你的程序还在运行的话,你可以使用定时器运行一个任务来删除,不然只能 deleteOnExit在JVM退出时删掉
Ⅱ 在Java中怎么判断有效时间!!!
我记得在看ORACLE的数据库培训教程里有SQL语句可以把一定格式字符串直接转成时间的。你在网上搜下相关资料:
Ⅲ java编程代码 redisTemplate过期时间问题
我以前项目中的做法是在保存的对象上,增加一个过期时间属性,get之后,判断系统时间是否超过过期时间,超过的话就删掉这个key,或者是从DB重新加载。
Ⅳ 请问,java高手,java中的session默认是有个有效期的吧,比如有效期是20分钟,
session 有效期是说 你20分钟内不再有请求 你一直操作=一直有请求 所以不会断
Ⅳ 在java中如何获取有效时间
给你写出来了,System.out.println(w.daycount(20130723, 20130729));
休息日
Sat Jul 27 00:00:00 CST 2013
休息日
Sun Jul 28 00:00:00 CST 2013
工作专日总共属有5天
Ⅵ java设置 redis 失效时间多久
EXPIRE命令返回1表示成功,返回0表示键值不存在或设置失败。
同时这里还有一个比较常用的命令是ttl,用于查看一个键还有多久时间会被删除。返回的是剩余时间(秒数)。
这里就不贴代码了,有一点需要说明的是,ttl命令在键不存在或被删除之后,会返回-2,在没有为键设置生存时间(即永久存在,建一个键之后的默认情况)时返回的是-1。大家可以亲自操作一把。
如果想要把一个设置过过期时间的键取消过期时间设置,则需要使用persist命令。
redis > SET session:27e7a id1234
OK
redis > EXPIRE session:27e7a 1200
(integer) 1
redis > TTL session:27e7a
(integer) 1092
redis > PERSIST session:27e7a
(integer) 1
redis > TTL session:27e7a
(integer) -1
这里需要说明一点的是,除了使用persist命令外,使用set、getset命令为键赋值,也会同时消除键的生存时间,如果需要可以重新使用expire命令为键设置生存时间。而其他对键的操作命令(如incr、lpush、hset、zrem)都不会影响键的生存时间。
expire命令的单位是秒,而且这个参数必须为整数,如果需要更精准的时间的话,需要使用pexpire命令设置,其单位为毫秒,同理也需要用pttl命令来看键的剩余毫秒数。当然使用expire命令设置的过期时间也是可以用pttl看键的剩余毫秒数的。
访问限制
有时候我们会有一个需求是需要限制一个用户对一个资源的访问频率,我们假定一个用户(用IP作为判断)每分钟对一个资源访问次数不能超过10次。
我们可以使用一个键,每次用户访问则把值加1,当值加到10的时候,我们设定键的过期时间为60秒,并且禁止访问。这时候下次访问发现值为10,则不让访问了,然后60秒后键被删除,这时候再次创建键。这样就可以解决,但是其实这样时间并不精准,问题还是挺大的。
我们还有一个方案:使用队列。前面的章节也说到了,使用列表类型可以用作队列。
我们设定一个队列rate.limiting.192.168.1.1(假定是这个IP),我们把每次的访问时间都添加到队列中,当队列长度达到10以后,判断当前时间与队列第一个值的时间差是否小于60,如果小于60则说明60秒内访问次数超过10次,不允许访问;否则说明可以访问,则把队列头的值删除,队列尾增加当前访问时间。
这种方法可以比较精准的实现访问限制,但是当限制的次数比较大时,这种方法占用的存储空间也会比较大。
缓存
有时候会把一些对CPU或IO资源消耗比较大的操作结果缓存起来,并设置一定时间的自动过期。比如我们设定一个微博外链的最热站点缓存放于新浪微博的首页,这样我们不可能每次访问都重新计算最热的外链站点,所以我们可以设定两小时更新一次。每次访问是判断这个键有没有,如果存在则直接返回,如果没有则通过计算把内容存入键中,并设定两小时的过期时间。
然而在很多场合这种方法会很恐怖,当服务器内存有限的时候,大量使用缓存切设置生存时间过长就会导致redis占用太多内存,而redis有时候会把系统内存都吃掉,导致系统崩溃。但是设置时间过短又会导致缓存的命中太低。
所以我们最好的办法是设定缓存的淘汰规则。这种方式比较适用于将redis用作缓存系统的时候比较好。
具体就是:修改配置文件中的maxmemory参数,限制redis的最大内存,当超出后会按照maxmemory-policy参数指定的策略删除不需要的键,直到redis占用的内存小于设定值。
Ⅶ 如何使用Java编程语言实现缓存数据, 并且缓存的数据的有效期为30分钟
http://shijincheng0223.iteye.com/blog/1412128,可以看看这个
Ⅷ java 网站中session 有默认的过期时间吗
程序中session都有一个默认的过期时间,其中tomcat中的默认时间为30分钟,根据需要我们专可以去手动设置session的过期属时间,以下是设置session的过期时间的三个方法:
1.在tomcat-->conf-->conf/web.xm中的<session-config>中设置:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
2.在项目的web.xml中定义:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
注:20则设置过期时间为20分钟 测试通过
3.在程序中定义:
session.setMaxInactiveInterval(30*60);
设置单位为秒,设置为-1永不过期
Ⅸ 你好,我想问一下怎么用Java代码限制软件使用期限,能给详细代码么
获取系统的当前时间,然后减去注册时间 如果超过了你设定的期限时间就是过期了
Ⅹ java如何控制有效时间在8.00-24.00
importjava.text.DateFormat;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassDemo{
publicstaticvoidmain(String[]args)throwsParseException
{
DateFormatdateFormat1=newSimpleDateFormat("yyyy-MM-dd");
//获得2017年01月14日的Date对象
DatemyDate1=dateFormat1.parse("2017-1-14");
DateFormatdateFormat2=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
//获得2017年01月14日14点20分42秒的Date对象
DatemyDate2=dateFormat2.parse("2017-01-1414:20:42");
//获得当前时间
DatenowDate=newDate();
//获得当前时间戳java的Timestamp格式2017-01-1414:20:42
//方法1获取结果
TimestampnowTimestamp=newTimestamp(System.currentTimeMillis());
//方法2
Timestampnousedate=newTimestamp(nowDate.getTime());
//方法3Calendar日历类
TimestampcTimestamp=Calendar.getInstance().getTimeInMillis();
//只取时--比较SB的方法
DateFormatdateFormat3=newSimpleDateFormat("HH");
//获得当前几点stringDateFormat.format(当前时间)
//返回的是string类型
intdatehh=(int)dateFormat3.format(nowDate);
if(8>=datehh<=24)
System.out.println("当前"+datehh+"点");
}
}