我想使用 mongo 来存储全局提要的数据,但我想用 redis 将最近的帖子缓存在内存中。有没有办法设置一个模型来使用两个适配器?如果没有,我想我会尝试让一个控制器使用两个模型。
问问题
3056 次
1 回答
6
这是一个实验性功能,但您可以让单个模型使用多个连接,并且连接可以使用不同的适配器:
在 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: {...}
}
但是,您不能指定某些属性使用一个连接,而其他属性使用另一个。如果涉及多个适配器,并且这些适配器具有相同的方法,那么它们将被合并在一起。在同一模型中使用sails-mongo
and就是这种情况;sails-redis
两个适配器都有find
,和create
,因此您的模型最终将只使用适配器的方法之一(在上面的示例中)。update
destroy
sails-redis
那么多个适配器有什么用呢?这是一种将外部 API 方法添加到模型的方法。例如,如果您有一个File
模型表示存在于 Amazon S3 上的文件,则可以使用带有和方法的sails-s3
适配器,以及存储有关该文件的元数据。upload
download
sails-mongo
缓存也是一项正在积极开发中的功能,但与此同时,您最好的选择是按照您的建议使用单独的缓存模型。
于 2014-03-13T21:56:22.597 回答