我使用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