Redisによる分散セッション共有
2769 ワード
分散システムではsessiong共有には多くのソリューションがあり、キャッシュに管理されるのが最も一般的なソリューションの1つであるべきです.
Spring Session公式説明
1、導入依存
2、Session配置:
maxInactiveIntervalInSeconds:セッションの有効期限を設定し、Redisセッションを使用した後、元のSringBootのserver.session.timeoutプロパティは有効になりません
では、これで構成しました.3、テスト追加テスト方法をテストしてsessionidを取得します.
ログインredis入力keys‘sessions’
このうち147276480000は失効時間であり、この時間後にsessionが失効することを意味し、
2台以上でセッションを共有する方法
実は、上記の手順で別のプロジェクトでもう一度構成し、起動すると自動的にセッション共有が行われます.
参照先:http://www.ityouknow.com/springboot/2016/03/06/springboot(%E4%B8%89)-Spring-Boot%E4%B8%ADRedis%E7%9A%84%E4%BD%BF%E7%94%A8.html
Spring Session公式説明
Spring Session provides an API and implementations for managing a user’s session information.
使用方法1、導入依存
<dependency>
<groupId>org.springframework.sessiongroupId>
<artifactId>spring-session-data-redisartifactId>
dependency>
2、Session配置:
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400*30)
public class SessionConfig {
}
maxInactiveIntervalInSeconds:セッションの有効期限を設定し、Redisセッションを使用した後、元のSringBootのserver.session.timeoutプロパティは有効になりません
では、これで構成しました.3、テスト追加テスト方法をテストしてsessionidを取得します.
@RequestMapping("/uid")
String uid(HttpSession session) {
UUID uid = (UUID) session.getAttribute("uid");
if (uid == null) {
uid = UUID.randomUUID();
}
session.setAttribute("uid", uid);
return session.getId();
}
ログインredis入力keys‘sessions’
t<spring:session:sessions:db031986-8ecc-48d6-b471-b137a3ed6bc4
t(spring:session:expirations:1472976480000
このうち147276480000は失効時間であり、この時間後にsessionが失効することを意味し、
db031986-8ecc-48d6-b471-b137a3ed6bc4
はsessionIdであり、登録http://localhost:8080/uid一致することを発見すると、sessionはredisの中で有効な管理を行っていることを示します.2台以上でセッションを共有する方法
実は、上記の手順で別のプロジェクトでもう一度構成し、起動すると自動的にセッション共有が行われます.
参照先:http://www.ityouknow.com/springboot/2016/03/06/springboot(%E4%B8%89)-Spring-Boot%E4%B8%ADRedis%E7%9A%84%E4%BD%BF%E7%94%A8.html