【问题标题】:SncRedisBundle not working, what am I doing wrong?SncRedisBundle 不工作,我做错了什么?
【发布时间】:2015-05-18 09:08:03
【问题描述】:
snc_redis:
    clients:
        default:
            type: predis
            alias: default
            dsn: redis://localhost
    session:
        client: session
        prefix: session_
        use_as_default: true

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

framework:
    ...
    session:
        handler_id: snc_redis.session.handler

我得到的错误:

  The service definition "snc_redis.session_client" does not exist.

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

The child node "client" at path "snc_redis.session" must be configured.

【问题讨论】:

    标签: symfony redis symfony-2.6


    【解决方案1】:

    在你的 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%
    

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

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

    framework:
        ...
        session: ~
    

    然后 SncRedisBundle 将根据第一个配置为您管理会话。第二个配置只是告诉 Symfony 保持默认设置。

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

    【讨论】:

    • use_as_default: true 不再是有效配置? Unrecognized option "use_as_default" under "snc_redis.session"
    • @Kal 是的,自从这个提交 (github.com/snc/SncRedisBundle/commit/…),它现在被删除了!将编辑我的帖子,谢谢;-)
    • 谢谢 :) 试图获得将实体保存到缓存而不是 mysql 数据库的学说。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多