Redis获得许多LIST键的第一个元素

时间:2019-01-31 18:45:10

标签: redis

有没有一种方法可以获取许多列表的(以各种键)的第一项?

如此

K1 = [1,2,3,4]
K2 = [19, 24]

> XXXX K1, K2 ==> [1, 19]

,对于不存在的列表,它应该以某种方式表示:

K1 = [1,2,3,4]
K2 = [19, 24]

> XXXX K1, K3, K2 ==> [1, None, 19]

假设我有2000个密钥需要更新,而我不想进行2000个查询。我也无法获得所有2000个完整值,因为列表很长(假设长度为500)

1 个答案:

答案 0 :(得分:2)

您将要进行此数量的查询,每个List的键一次。但是,可以使用pipeliningLua script来优化工作流程:

var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');

// USER SCHEMA
var UserSchema = mongoose.Schema({
    username: {
        type: String,
        index: true
    },
    name: {
        type: String
    },
    email: {
        type: String
    },
    password: {
        type: String
    }
});

var User = module.exports = mongoose.model('User', UserSchema);

module.exports.createUser = function(newUser, callback) {
    bcrypt.genSalt(10, function(err, salt) {
        bcrypt.hash(newUser.password, salt, function(err, hash) {
            newUser.password = hash;
            newUser.save(callback);
        });
    });
}