使用Redis在Spring Boot应用程序和PHP之间共享会话

时间:2019-01-16 14:00:50

标签: java php spring-boot redis spring-session

我们有很多页面已经在PHP(核心)中运行,并且需要非常频繁(且突然)进行更改。因此,我们不希望将代码库完全迁移到Java。我试图创建一种体系结构,使我们可以在Spring Boot中将业务逻辑处理的某些部分(需要更坚实的基础)保留在PHP中,而其余部分(尤其是报告部分)保留在PHP中。

现在,我希望能够在已经存在的PHP应用程序和我当前在Spring Boot中编写的应用程序之间共享Session。我已经将此应用程序配置为使用Redis与Spring Session一起运行。由于数据库服务器中的资源有限,我不能也不想使用基于表的实现来进行会话管理。

我将Redis与Spring Spring Boot结合使用的配置如下:

spring.session.store-type=redis
spring.redis.host=localhost
spring.redis.password=#somepasswordhere
spring.redis.port=6379
server.servlet.session.timeout=20m
spring.session.redis.flush-mode=on_save
spring.session.redis.namespace=SPRING_SESSION

spring.redis.jedis.pool.max-active=8
spring.redis.jedis.pool.max-idle=8
spring.redis.jedis.pool.max-wait=-1
spring.redis.jedis.pool.min-idle=16
spring.redis.timeout=1s

我还能够将PHP配置为使用Redis服务器作为会话管理的数据存储。

我想知道是否可以通过某种方式为两者建立一个公共会话,即PHP中的一个应用程序可以访问由该会话设置为该会话的值(及其其他属性,例如到期/有效性)。 Spring Boot中的其他应用程序,反之亦然?

此外,我知道这将不在主题之内,但是对于Spring Session部分,对于更高效的Redis配置的任何建议也将在这里得到赞赏。

0 个答案:

没有答案