我使用springboot发送验证码。设置验证码的有效时间为两分钟,并在两分钟后过期。我可以通过设置缓存来做到这一点吗?或者其他方式。谁能帮我?如何在springboot中设置缓存时间
1
A
回答
1
您可以使用Redis来达到此目的。
Redis是一个可用作缓存的开源内存数据结构存储。它提供了一种将过期时间添加到密钥的方法。到期后,密钥将自动失效/从Redis中删除。
在你的Maven,请提供以下依赖性:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
在你SpringBoot的应用程序,你需要定义只是以下属性:
spring.redis.host=
spring.redis.port=
,你可以设置过期时间,如:
public void put(final T key, final T hashKey, final Object value, final long exiryInMilliseconds) {
hashOps.put(key, hashKey, value);
if (exiryInMilliseconds > 0) {
redisTemplate.expire(key, exiryInMilliseconds, TimeUnit.MILLISECONDS);
}
}
Both RedisTemplate & HashOperations是p由Redis核心软件包提供。你可以像使用Spring一样注入它们,或者通过自己创建实例来使用它们。
@Resource
private RedisTemplate<T, T> redisTemplate;
@Resource(name = "redisTemplate")
private <T, T, Object> hashOps;
在检索的时候,如果你这样做:
hashOps.get(key, hashKey);
它将返回空如果到期时间已过/或键不存在。否则你会得到你的对象。
1
你可以试试ehcache3,它是为这种用例而设计的!
看看文档,特别是the part about expiry。
然后,一起砍你的项目,也有很多ehcache3 +春天启动的例子出来there,there,并且there,与您可以只依靠Java EE official caching spec, JSR-107额外的好处,而不是依赖于供应商。
+0
谢谢,我试试看 – yongguangl
相关问题
- 1. 如何在SpringBoot中设置Hibernate方言?
- 2. 如何缓存masterpage设置?
- 3. mod_pagespeed - 如何设置过期和缓存更新时间?
- 4. 如何设置缓存时间特定文件
- 5. UserControl:如何设置输出缓存持续时间programaticaly?
- 6. 如何使用Java在GAE中设置网页缓存设置?
- 7. 如何设置会话生存时间
- 8. 缓存设置
- 9. 缓存设置
- 10. 如何在jquery中设置时间?
- 11. 我如何在php中设置时间?
- 12. 如何在java中上传时在aws s3对象中设置缓存控制?
- 13. 如何在设置的时间内将ASP.NET主页数据存储在应用程序缓存中
- 14. IE缓存设置
- 15. 如何设置缓存失效日期
- 16. 如何设置Jquery菜单的缓存?
- 17. 如何在symfony2.8中设置或获取缓存中的值?
- 18. CPU缓存命中时间
- 19. 如何获取缓存在Azure缓存中的项目的时间信息?
- 20. 在jQuery $ .post()中设置缓存为false?
- 21. 批量设置在redis缓存中
- 22. 在asp.net中设置缓存控制
- 23. 如何在springboot项目中设置数据库模式?
- 24. 如何在springboot中设置jolokia上下文路径admin
- 25. 如何设置的时间
- 26. 如何在iCalendar中设置日期,时间和持续时间?
- 27. 如何为客户端和服务器缓存设置不同的缓存过期时间
- 28. 使用Django设置来缓存时间戳
- 29. Android:是否可以设置webView的缓存持续时间?
- 30. UserControls - 以编程方式设置输出缓存持续时间?
谢谢,我会试试 – yongguangl
@yongguangl它对你有用吗? – theLearner
抱歉没及时回复,在此期间我忙于其他事项。当我添加依赖关系“spring-boot-starter-data-redis”时,出现了一个问题。 “redis jar”已下载,但无法正常工作。请查看我的更新。 – yongguangl