使用Redis驱动程序时如何更改Laravel 4的连接信息?

阿比舍克

我正在redis用作缓存数据的驱动程序。Laravel的数据库配置可以定义Redis连接信息。

  'redis'       => array(
    'cluster' => true,
    'default' => array(
        'host'     => '127.0.0.1',
        'port'     => 6379,
        'database' => 0,
    ),
),

但是,如果我想定义多个连接并使用特定connection于缓存的连接,如何在Laravel 4上执行此操作。cache.php上没有连接配置,可以在其中指定redis连接名称。当前connection它具有一个配置,如果缓存驱动程序为,则将使用配置database

编辑

我只是看过Laravel代码,并且在初始化Redis驱动程序时,Laravel似乎没有考虑连接。我的理解正确吗?

http://laravel.com/api/source-class-Illuminate.Cache.CacheManager.html#63-73

protected function createRedisDriver()
{
    $redis = $this->app['redis'];

    return $this->repository(new RedisStore($redis, $this->getPrefix()));
}
Fideloper

Laravel可以处理多个连接。请参阅有关添加/使用多个数据库连接的问题/答案

为redis定义多个连接后,您需要做一些辅助工作才能访问代码中的某些位置。可能看起来像这样:

$redisCache = App::make('cache'); // Assumes "redis" set as your cache
$redisCache->setConnection('some-connection'); // Your redis cache connection
$redisCache->put($key, $value');

编辑

我将在此处添加一些内容,以使您了解如何执行此操作,因此您不需要到处都需要连接逻辑:

最简单的是,您可以Redis缓存的实例绑定到应用程序中的某个位置(也许是start.php或其他app / start / *。php文件):

App::singleton('rediscache', function($app){
    $redisCache = $app['cache'];
    $redisCache->setConnection('some-connection'); // Your redis cache connection
    return $redisCache;
});

然后,在您的代码中,您可以执行以下操作来缓存:

$cache = App::make('rediscache');
$cache->put($key, $value); // Or whatever you need to do

如果您有自己的代码应用程序库则也可以创建服务提供者您可以在其中注册“ rediscache”,然后在您的应用程序中以相同的方式使用它。

希望这可以作为一个开始-还有其他代码体系结构-使用依赖注入,也许还可以使用存储库来帮助进一步组织代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何防止连接池在mongodb上使用Java驱动程序关闭?

使用嵌入式驱动程序时,将过程部署到Neo4J

如何在使用chrome驱动程序/ firefox驱动程序时更改Webdriver中的文件下载位置

如何使用Mysql JDBC驱动程序将Android与MySQL连接

使用CQL jdbc驱动程序时连接字符串应该是什么

如何使用JDBC驱动程序连接到Databricks Delta表

Qt使用ODBC驱动程序连接到XLSX文件

如何获取群集信息以调用REST API(从驱动程序)?

如何从内核内部访问驱动程序信息?

如何使用CData Excel JDBC驱动程序连接到远程文件?

如何使用datastax驱动程序创建Cassandra连接池

如何使用OTL ODBC驱动程序将C ++连接到MySQL?

使用Neo4j Python驱动程序时如何在cypher查询中将Label设置为变量

使用Javascript连接到Neo4j(无驱动程序)

无法使用neo4j驱动程序从nodejs连接到neo4j

如何查看当前安装的WiFi驱动程序的信息?

如何使用node.js(带有node-mysql驱动程序)连接到MySQL?

连接jdbc odbc驱动程序时出错

使用同步驱动程序在Laravel 4中排队电子邮件

安装打印机驱动程序时出现错误信息

使用watir Web驱动程序连接到SQL Server

使用AMDGPU Pro驱动程序的GPU统计信息?

如何检查我的VM是否使用vhost-net驱动程序进行网络连接

如何连接UI信息和域信息

如何使用反应式驱动程序连接到 Neo4J 嵌入式实例?

如何连接 QT 和 MariaDB。未加载驱动程序

无法使用 PostgreSQL JDBC 驱动程序通过 SSL 连接

如何使用 JDBC 驱动程序连接到带有重音名称的 SQL Server?

使用 MongoDB 本机驱动程序时在退出时关闭 MongoClient 连接?