Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4.2中缓存和会话的不同redis数据库_Php_Laravel_Caching_Laravel 4_Redis - Fatal编程技术网

Php Laravel 4.2中缓存和会话的不同redis数据库

Php Laravel 4.2中缓存和会话的不同redis数据库,php,laravel,caching,laravel-4,redis,Php,Laravel,Caching,Laravel 4,Redis,我试图从文件缓存中移开,改用redis。我可以使用相同的redis数据库来进行缓存和会话,但这意味着我无法在不丢失所有会话的情况下清除应用程序缓存,因此我希望在同一服务器上的不同数据库上运行这两个应用程序。我的配置如下: database.php 'redis' => array( 'cluster' => false, 'default' => array('host' => 'redisserveri

我试图从文件缓存中移开,改用redis。我可以使用相同的redis数据库来进行缓存和会话,但这意味着我无法在不丢失所有会话的情况下清除应用程序缓存,因此我希望在同一服务器上的不同数据库上运行这两个应用程序。我的配置如下:

 database.php

      'redis' => array(

          'cluster' => false,

              'default' => array('host' => 'redisserverip', 'port' => 6379, 'database' => 0),
              'session' => array('host' => 'redisserverip', 'port' => 6379, 'database' => 1),

          ),

 cache.php

      'driver' => 'redis',
      'connection' => null,

 session.php

      'driver' => 'redis',          
      'connection' => 'session',

这不起作用,因为应用程序缓存和会话都保存到第一个数据库中,而该数据库应在第0个和第1个数据库中共享。这是Laravel中的一个bug还是我的配置有问题?

我认为这不是bug,但是连接Redis服务器的选项从未被引入,正如我在中看到的那样

而如果将其与进行比较,则会传递每个服务器的选项,因此支持该功能

protected function createSingleClients(array $servers)
{
    $clients = array();
    $options = $this->getClientOptions($servers);
    foreach ($servers as $key => $server)
    {
        $clients[$key] = new Client($server, $options);
    }
    return $clients;
}

我考虑到,在您的示例中,您正在寻找
无集群
选项。

如配置文件所述,连接参数与redis无关

使用“数据库”缓存驱动程序时,您可以指定 应用于存储缓存项的连接。当这 选项为null数据库连接将用于 缓存


在session.php中,可以指定redis连接的名称。“”当使用“数据库”或“redis”会话驱动程序时,您可以指定一个应用于管理这些会话的连接。“”如果在redis中您不能指定连接的名称,请检查会话注释。您是否建议如果我将cluster更改为true,我可能能够实现我正在尝试的操作?否,我只是指出我展示的那些方法是连接到单个服务器,建议是更新框架
protected function createSingleClients(array $servers)
{
    $clients = array();
    $options = $this->getClientOptions($servers);
    foreach ($servers as $key => $server)
    {
        $clients[$key] = new Client($server, $options);
    }
    return $clients;
}