Php 在yii2应用程序中同时使用mysql和redis

Php 在yii2应用程序中同时使用mysql和redis,php,mysql,redis,yii2,Php,Mysql,Redis,Yii2,我正在构建一个CRM系统,它应该允许不同的用户进行不同的访问,因此我需要在面板中进行复杂的身份验证和通知。但是主系统应该使用REDIS。我已经安装了Yi2 redis插件,在db.php(mysql config)中有如下配置: 我如何区分我的模型,使用mysql或redis?我假设如果我在components部分指定redis,整个应用程序都使用redis db。我可以将redis与多个键值一起使用,但由于redis会在达到最大内存时删除键值,所以所有注册用户及其配置文件都将被删除,因此我认为

我正在构建一个CRM系统,它应该允许不同的用户进行不同的访问,因此我需要在面板中进行复杂的身份验证和通知。但是主系统应该使用REDIS。我已经安装了Yi2 redis插件,在db.php(mysql config)中有如下配置:

我如何区分我的模型,使用mysql或redis?我假设如果我在components部分指定redis,整个应用程序都使用redis db。我可以将redis与多个键值一起使用,但由于redis会在达到最大内存时删除键值,所以所有注册用户及其配置文件都将被删除,因此我认为我应该使用mysql来处理basci(具有角色、身份验证、配置文件的数据库)

然后尝试使用

// To get from db1
Yii::$app->db1->createCommand((new \yii\db\Query)->select('*')->from('tbl_name'))->queryAll()

// To get from db2
Yii::$app->db2->createCommand((new \yii\db\Query)->select('*')->from('tbl_name'))->queryAll();
对于模型中的活动记录,请编写

// db1
public function getDb() {
    return Yii::$app->db1;
}

//Or db2
public function getDb() {
    return Yii::$app->db2;
}

您好,如果这有助于您可以投票的答案,这将有助于我改善我的帐户
return [
   'components' => [
      'db1' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=localhost;dbname=db1name', //maybe other dbms such as psql,...
        'username' => 'db1username',
        'password' => 'db1password',
    ],
    'db2' => [
        'class' => 'yii\redis\Connection',
        'dsn' => 'YOURCONFIG', 
        'port' => '6379',
        'password' => 'db2password',
        'username' => 'db2username',
    ],
  ],
];
// To get from db1
Yii::$app->db1->createCommand((new \yii\db\Query)->select('*')->from('tbl_name'))->queryAll()

// To get from db2
Yii::$app->db2->createCommand((new \yii\db\Query)->select('*')->from('tbl_name'))->queryAll();
// db1
public function getDb() {
    return Yii::$app->db1;
}

//Or db2
public function getDb() {
    return Yii::$app->db2;
}