spring 可以在没有Redis的情况下使用Sping Boot 会话吗?

jmp7cifd  于 2023-03-28  发布在  Spring
关注(0)|答案(4)|浏览(187)

查看Sping Boot 文档,我只找到了使用Redis会话的示例,是否可以在没有Redis的情况下使用它?

wi3ka0sx

wi3ka0sx1#

正如另一个答案所说:是的,您可以通过更改SessionRepository实现来更改Session持久性后端。
而且,Spring-Session提供了一个内置的替代方案,即MapSessionRepository,您可以将会话保存在Map中。
在Spring Session的示例中,有一个sample using Hazelcast作为持久化后端。它利用了上面提到的MapSessionRepository和Hazelcast创建的Map示例。

idfiyjo8

idfiyjo82#

我知道我有点晚了这个问题,但只是张贴在情况下,其他人偶然发现这个问题。
从Spring Session 1.2.0开始,有一个内置的JDBC会话存储库,可以像这样使用:

@Configuration
@EnableJdbcHttpSession // default session length and DB table name can be included on the annotation
public class SessionConfiguration {
    // code goes here if needed
}

在SpringSessionJAR中,org.springframework.session.jdbc包包含SQL脚本,可以为许多不同的DBMS(MySQL、Postgre等)创建表结构
我在SpringSession1.2.0里程碑版本中开始使用JDBC功能,一路沿着没有遇到任何问题。

gpnt7bae

gpnt7bae3#

你可以使用任何你想要的技术来存储会话。Spring Session提供了接口SessionRepository,你必须实现它来存储和检索会话。所以只需使用你的存储技术创建该接口的实现,并将该实现配置为Spring bean。

guicsvcw

guicsvcw4#

在Redis,JDBC等中存储spring session的想法是消除存储在容器中的http session(例如Tomcat)。当http session存储在容器中时,在集群/云环境中容器之间共享会话变得很麻烦。负载平衡无法有效。任何支持分布式,内存,缓存等的f/w都可以考虑用于存储spring session。
如果你的部署架构是多容器一个数据库,那么就选择jdbc,否则redis应该没问题。
Oracle Caching Framework Reference https://docs.oracle.com/cd/A97335_02/caching.102/a88706/ic_intro.htm

相关问题