mongo を使用してグローバル フィードのデータを保存したいのですが、redis を使用して最新の投稿をメモリにキャッシュしたいと考えています。1 つのモデルで 2 つのアダプターを使用するように設定する方法はありますか? 無い場合は、1 つのコントローラーで 2 つのモデルを使用できるようにしようと思います。
1 に答える
これは実験的な機能ですが、1 つのモデルで複数の接続を使用し、接続で異なるアダプターを使用することができます。
Sails v0.9.x モデルで、mongo
および でredis
定義/config/adapters.js
:
module.exports = {
adapter: ['mongo', 'redis']
attributes: {...}
}
Sails v0.10.x モデルで、mongo
および でredis
定義/config/connections.js
:
module.exports = {
connections: ['mongo', 'redis']
attributes: {...}
}
ただし、一部の属性が 1 つの接続を使用し、他の属性が別の接続を使用するように指定することはできません。複数のアダプターが関係しており、アダプターのメソッドが同じである場合、それらは一緒にマージされます。これは、同じモデルでsails-mongo
とを使用する場合に当てはまります。sails-redis
両方のアダプタにfind
、create
、update
およびdestroy
があるため、モデルはアダプタのメソッドの 1 つだけを使用することになります (sails-redis
上記の例では )。
では、複数のアダプターの使用は何ですか? これは、モデルに外部 API メソッドを追加する方法です。たとえば、File
Amazon S3 に存在するファイルを表すモデルがある場合、sails-s3
アダプターupload
とdownload
メソッドを使用しsails-mongo
て、ファイルに関するメタデータを保存できます。
キャッシングも活発に開発中の機能ですが、当面は、あなたが提案したように、キャッシュに別のモデルを使用することをお勧めします。