gpt4 book ai didi

java - spring boot中如何设置缓存时间

转载 作者:行者123 更新时间:2023-11-30 02:25:30 25 4
gpt4 key购买 nike

enter image description here我使用springboot发送验证码。设置验证码的有效时间为两分钟,两分钟后失效。我可以通过设置缓存来做到这一点吗?或者其他方式。谁能帮助我?

最佳答案

您可以使用 Redis 来实现此目的。

Redis 是一个开源的内存数据结构存储,可以用作缓存。它提供了一种为 key 添加到期时间的方法。过期时间后, key 将自动失效/从 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);
}

}

RedisTemplate 和 HashOperations 都是由 Redis 核心包提供的。您可以像这样使用 Spring 注入(inject)它们,也可以通过自己创建实例来使用它们。

@Resource
private RedisTemplate<T, T> redisTemplate;

@Resource(name = "redisTemplate")
private <T, T, Object> hashOps;

在检索时,如果您执行以下操作:

hashOps.get(key, hashKey);

如果过期时间已过/或 key 不存在,它将返回null。否则你就会得到你的对象。

关于java - spring boot中如何设置缓存时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45728252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com