我正在使用Sails向Redis添加一些数据...它工作正常,但我不确定如何为密钥设置EXPIRE ...
我正在为模型使用sails-redis适配器/连接...... 我的模型看起来像这样
module.exports = {
connection: 'cache',
attributes: {
id: {type: 'string', primaryKey: true},
data: {type: 'string'}
}
};
要保存模型,请使用
Cache.create({id: "somekey", data: data}, function(err, data){})
答案 0 :(得分:0)
如我所知,Waterline并没有提供当前接近的原生适配器的此功能。但是,它有点hacky,但您可以通过Waterline访问redis客户端,并使用创建的模型ID以这种方式执行。
// Create the base model
Model.create({ field: value }).exec( function ( err, created ) {
if ( created ) {
// Then manually set expiration via native Redis adapter
var native = Model.adapter.connections.connectionName._adapter.native;
native( 'connectionName', null, function ( err, connection ) {
if ( connection ) {
connection.expire('waterline:<model name, lower case>:id:' + created.id, <timeout, in seconds>, function ( err, reply ) {
console.log( err, reply );
});
}
});
}
});
不像我喜欢的那样干净,但我也不喜欢在Redis本身内置手动编写该功能时。