我正在使用symfony2 snc-redis包进行缓存。
在我的服务器上,redis已安装且工作正常。
我的问题是;当我尝试使用redis清除或刷新数据库时,我服务器上使用redis的所有站点都崩溃了。由于prod env而导致内部服务器错误。
我试图在我的config.yml中为我服务器上的每个站点更改redis配置端口,但我认为不起作用。
我的示例snc-redis配置:
snc_redis:
clients:
default:
type: predis
alias: default
dsn: redis://localhost
logging: %kernel.debug%
cache:
type: predis
alias: cache
dsn: redis://localhost/1
logging: true
cluster:
type: predis
alias: cluster
dsn:
- redis://127.0.0.1/5
- redis://127.0.0.2/6
- redis://pw@/var/run/redis/redis-1.sock/7
- redis://127.0.0.1:6379/8
options:
profile: 2.4
connection_timeout: 10
connection_persistent: true
read_write_timeout: 30
iterable_multibulk: false
throw_errors: true
cluster: Snc\RedisBundle\Client\Predis\Connection\PredisCluster
monolog:
type: predis
alias: monolog
dsn: redis://localhost/1
logging: false
options:
connection_persistent: true
session:
client: default
prefix: foo
use_as_default: true
doctrine:
metadata_cache:
client: cache
entity_manager: default
document_manager: default
result_cache:
client: cache
entity_manager: [default, read]
document_manager: [default, slave1, slave2]
namespace: "dcrc:"
query_cache:
client: cache
entity_manager: default
monolog:
client: monolog
key: monolog
swiftmailer:
client: default
key: swiftmailer
monolog:
handlers:
main:
type: service
id: monolog.handler.redis
level: debug
我做错了什么?我怎样才能使它正常工作并且不会导致崩溃。
我的Redis捆绑Symfon2:
SNC \ RedisBundle \ SncRedisBundle()
答案 0 :(得分:2)
您可以为每个网站定义前缀,如下所示:
snc_redis:
clients:
default:
dsn: "redis://localhost:6379"
options:
prefix : "site_name"
type: phpredis
alias: default
logging: %kernel.debug%
注意:您必须考虑将此前缀添加到所有客户端;)
答案 1 :(得分:1)
您是否尝试更改每个网站的客户端别名?