我正在使用snc-redis缓存我的学说查询,一切正常。
当我在团队工作时,我决定将redis服务器放在远程计算机上,但是在连接时遇到错误“将字节写入服务器时出错[tcp://xxx.xxx.xxx.xxx :6379"
所以我正在考虑仅为生产服务器部署redis并为我们的开发禁用它。问题是我们使用predis查询缓存函数的每个存储库都会导致问题,因为没有可用的redis服务。
这是我的配置:
snc_redis:
# configure predis as client
clients:
default:
type: predis
alias: default
dsn: "redis://%redis_url%"
doctrine:
type: predis
alias: doctrine
dsn: "redis://%redis_url%"
# configure doctrine caching
doctrine:
metadata_cache:
client: doctrine
entity_manager: default
document_manager: default
result_cache:
client: doctrine
entity_manager: [default]
namespace: "doctrine_result_cache_%kernel.environment%_"
query_cache:
client: doctrine
entity_manager: default
答案 0 :(得分:0)
您可以根据环境为配置文件夹中的特定文件添加不同的配置。
如果将redis配置放在config_prod.yml而不是config.yml中,则仅适用于prod环境。
您还可以创建另一个名为config_yourenv.yml的文件,并从不同的前端控制器加载它。
在app.php中:
require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';
// Change the environment you load if want.
$kernel = new AppKernel('yourenv', false);
如果要排除捆绑包的整个负载,请在AppKernel.php上添加:
if (in_array($this->getEnvironment(), array('yourenv')) {
$bundles[] = new Path\To\SncRedisBundle();
}
我希望它有所帮助。
答案 1 :(得分:0)
我通常只为prod
环境启用任何类型的缓存。所以我建议你离开config.yml,不要有任何特定的配置,只有snc_redis包的基本定义。
例如:
<强> config.yml 强>
snc_redis:
# configure predis as client
clients:
default:
type: predis
alias: default
dsn: "redis://%redis_url%"
# Standard Doctrine Configuration
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
# if using pdo_sqlite as your database driver, add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
<强> config_prod.yml 强>
snc_redis:
# configure predis as client
clients:
default:
type: predis
alias: default
dsn: "redis://%redis_url%"
doctrine:
type: predis
alias: doctrine
dsn: "redis://%redis_url%"
# configure doctrine caching
doctrine:
metadata_cache:
client: doctrine
entity_manager: default
document_manager: default
result_cache:
client: doctrine
entity_manager: [default]
namespace: "doctrine_result_cache_%kernel.environment%_"
query_cache:
client: doctrine
entity_manager: default
希望这个帮助