どのDBを使用するかは関係ありません。それはそれらを実装する方法です。
良いこと約のMongoDBとRedisのは、両方のデータベース接続として、またはキャッシュ成分として使用することができることです。あなたは、たとえば、これらのconfigsを持っていることがあります。
'components' => [
'db' => [
'class' => '\yii\mongodb\Connection',
'dsn' => 'mongodb://developer:[email protected]:27017/mydatabase',
],
'cache' => [
'class' => 'yii\redis\Cache',
'redis' => [
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
]
],
],
をここで、MongoDBのは、デフォルトのデータベースとして設定されている間、Redisのは、唯一のキャッシュコンポーネントとして使用され、すべてのキャッシュコンポーネントは同じベースクラスyii\caching\Cacheを持っているので、彼らは唯一のthose APIsをサポートしています。あなたがそれをキャッシュするためだけに使用しているのであればうまくいくはずです。
Yii2 Caching Guideを確認して、キャッシュコンポーネントでできることをすべて確認してください。あなたがしようとしていることの簡単な例は、@Blizz answer hereの中で見ることができます。ここでは、キャッシュされたデータを使用するか無効にするかをチェックする依存関係としてSQLクエリを設定しました。
ここ
'components' => [
'mongodb' => [
'class' => '\yii\mongodb\Connection',
'dsn' => 'mongodb://developer:[email protected]:27017/mydatabase',
],
'redis' => [
'class' => 'yii\redis\Connection',
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
],
'cache' => [
'class' => 'yii\redis\Cache',
'redis' => 'redis' // id of the connection application component
],
],
我々は2つのデータベースを定義し、また、キャッシュとして使用するためにそれらのいずれかを選択:あなただけの、あなたが代わりにそれらのconfigsを有することができるキャッシュより多くのためのRedisデータベースを使用する必要がある場合には
成分。アプリ内のRedisデータベースをRedis ActiveRecordまたはRedis ActiveQueryクラスとして使用することができる点を除いて、まったく同じ方法で動作するはずです。各モデルクラス内で使用するDBをthis exampleに設定するだけで済みます。