SncRedisBundle无法正常工作,我做错了什么?

Ang*_*o A 3 redis symfony symfony-2.6

snc_redis:
    clients:
        default:
            type: predis
            alias: default
            dsn: redis://localhost
    session:
        client: session
        prefix: session_
        use_as_default: true
Run Code Online (Sandbox Code Playgroud)

以上是我在config.yml中的当前snc_redis配置我通过执行以下操作将已定义的snc_redis添加为我的会话处理程序ID:

framework:
    ...
    session:
        handler_id: snc_redis.session.handler
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

  The service definition "snc_redis.session_client" does not exist.
Run Code Online (Sandbox Code Playgroud)

当我删除该行时client: session,它仍然失败:

The child node "client" at path "snc_redis.session" must be configured.
Run Code Online (Sandbox Code Playgroud)

Nin*_*nir 11

在config.yml文件中,尝试添加以下内容:

# config.yml
snc_redis:
    clients:
        default:
            type: predis
            alias: default
            dsn: redis://%redis_address%
            logging: %kernel.debug%
        session:
            type: predis
            alias: session
            dsn: redis://%redis_address%/1
            logging: true
    session:
        client: session
        prefix: %project_name%
Run Code Online (Sandbox Code Playgroud)

这将设置2个客户端,默认和缓存.您可以使用默认值来处理数据的缓存,session以便处理会话内容.如果您只有1个分片,则可以删除会话客户端(snc_redis.clients.session),然后将其设置snc_redis.session.clientdefault

关于框架部分,试试这个:

framework:
    ...
    session: ~
Run Code Online (Sandbox Code Playgroud)

然后,SncRedisBundle将根据第一个配置为您管理会话.第二种配置告诉Symfony保持默认.

告诉我它是否有效,我会相应编辑:)