Mic*_*rin 5

您需要定义2个服务:

  • 一个用于Redis连接。
  • 为此RedisSessionHandler,将利用该连接。

编辑服务文件:

# config/services.yaml
services:
    Redis:
        class: Redis
        calls:
            - method: connect
              arguments:
                  - '%env(REDIS_HOST)%'
                  - '%env(int:REDIS_PORT)%'
            # If you need key prefix
            # - method: setOption
            #   arguments:
            #       - !php/const Redis::OPT_PREFIX
            #       - 'my_prefix'

    Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler:
        arguments:
            - '@Redis'
Run Code Online (Sandbox Code Playgroud)

(请注意,我在此处将Redis主机和端口存储为环境变量,但是可以根据需要在其他位置定义它们)。

您现在可以将服务用作会话处理程序:

# config/packages/framework.yaml
framework:  
    session:
        handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler
Run Code Online (Sandbox Code Playgroud)

我也有点挣扎,并写了一篇更详细的文章:http : //blog.michaelperrin.fr/2018/08/14/redis-session-handling-in-symfony/