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.
答案 0 :(得分:10)
在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个客户端,默认和缓存。您可以使用默认值来处理数据缓存,并使用session
以便处理会话内容。
如果您只有1个分片,则只需删除会话客户端(snc_redis.clients.session
),然后将snc_redis.session.client
设置为default
关于框架部分,试试这个:
framework:
...
session: ~
然后,SncRedisBundle将根据第一个配置为您管理会话。第二种配置告诉Symfony保持默认。
告诉我它是否有效,我会相应地进行编辑:)