>我正在使用Spring Boot和Spring session。这是我的简单配置。
@EnableRedisHttpSession
public class Config {}
Spring Boot 默认创建一个RedisConnectionFactory
,我将相应的host
、port
信息等放在application.yml
文件中(为简洁起见删除(
我还添加了与安全相关的信息(为简洁起见,从此处删除了它(。
现在这是我的控制器。
@RestController
public HomeController {
@GetMapping("/hello")
public String home(HttpSession session){
// I need redis's key's expiration time. or session id's expiration time.
// how can I get this? Should I use HttpSession?
return "hello";
}
}
如何在控制器中获取会话过期时间? 或者更确切地说,如何获取 Redis 密钥的到期时间?
你需要使用 HttpSession
您可以将其作为参数添加到控制器方法中,如下所示(也显示在有问题中(。
@GetMapping("/hello")
public String home(HttpSession session){
// I need redis's key's expiration time. or session id's expiration time.
// how can I get this? Should I use HttpSession?
int ttl = session.getMaxInactiveInterval(); // this should give redis TTL
return "hello";
}
你可以使用 HttpSession 的 getMaxInactiveInterval 方法来获取 redis 的 TTL 值,如上面的代码所示。