5

mongo を使用してグローバル フィードのデータを保存したいのですが、redis を使用して最新の投稿をメモリにキャッシュしたいと考えています。1 つのモデルで 2 つのアダプターを使用するように設定する方法はありますか? 無い場合は、1 つのコントローラーで 2 つのモデルを使用できるようにしようと思います。

4

1 に答える 1

6

これは実験的な機能です、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両方のアダプタにfindcreateupdateおよびdestroyがあるため、モデルはアダプタのメソッドの 1 つだけを使用することになります (sails-redis上記の例では )。

では、複数のアダプターの使用は何ですか? これは、モデルに外部 API メソッドを追加する方法です。たとえば、FileAmazon S3 に存在するファイルを表すモデルがある場合、sails-s3アダプターuploaddownloadメソッドを使用しsails-mongoて、ファイルに関するメタデータを保存できます。

キャッシングも活発に開発中の機能ですが、当面は、あなたが提案したように、キャッシュに別のモデルを使用することをお勧めします。

于 2014-03-13T21:56:22.597 に答える