启动线程不断轮训判断某个key是否因超时而被消除,总觉得不是个好办法,有没有回调的写法知道某个key是否超时呢?
——————————————————————————————————————————
经@lazyp前辈指点可以用Guava Cache,Guava Cache超时可以设置回调函数。
启动线程不断轮训判断某个key是否因超时而被消除,总觉得不是个好办法,有没有回调的写法知道某个key是否超时呢?
——————————————————————————————————————————
经@lazyp前辈指点可以用Guava Cache,Guava Cache超时可以设置回调函数。
Redis实现超时的方法有两种,一种是惰性处理:等用户访问的时候再判断key是否超时,另一种是定期逐步扫描:类似于一个定时任务,每次都会扫描部分key,把超时的key删除。
不管哪种方法都不能实现,key一旦超时就以及回调。
其实还有一种超时策略就是定时删除,在设置超时时间的时候,创建一个定时器,让定时器在超时时间到来的时候,立即执行对键的删除操作。但是这种方式需要占用相当一部分CPU时间,所以Redis并没有采用。(参考《Redis设计与实现》)
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
往redis里面设置内容的之后,再设置一个超时时间就行了。
jedis.expire(key, time_expire);