示例#1
0
exports.lpush = function (db, key, item, callback) {
    if (Array.isArray(item)) {
        var temp = [],
            params = [];

        for (var i = 0; i < item.length; i++) {
            item[i] = u.makeString(item[i]);
            params.push(item[i]);
        }
        i = 0;
        while (i < params.length) {
            var data = params.slice(i, (i + 50000 <= params.length) ? i + 50000 : params.length);
            data.unshift(key);
            temp.push(f(data));
            i = i + 50000;
        }
        if (typeof callback === 'function') {
            q.all(temp)
                .then(function(result){
                    callback(null, result);
                })
                .fail(function(error){
                    callback(error);
                });
        }
        else{
            return q.all(temp);
        }
    }
    else {
        var defer = q.defer();
        item = u.makeString(item);
        getRedisClient(db, function (client) {
            client.lpush(key, item, redisCallbackGen('lpush', callback, defer));
        });
        if (typeof callback !== 'function') {
            return defer.promise;
        }
    }

    function f(params) {
        var defer2 = q.defer();
        params.push(redisCallbackGen('lpush', callback, defer2));
        getRedisClient(db, function (client) {
            client.lpush.apply(client, params);
        });
        return defer2.promise;
    }

};
示例#2
0
exports.hmset = function (db, key, object, callback) {
    var defer = null,
        params = [key];

    if (typeof callback !== 'function') {
        defer = q.defer();
    }

    for (var i in object) {
        if (object.hasOwnProperty(i)) {
            params.push(i);
            params.push(u.makeString(object[i]));
        }
    }

    params.push(redisCallbackGen('hmset', callback, defer));

    getRedisClient(db, function (client) {
        client.hmset.apply(client, params);
    });

    if (defer) {
        return defer.promise;
    }
};
示例#3
0
function setex(db, key, ttl, value, callback) {
    var defer = null;

    if (typeof callback !== 'function') {
        defer = q.defer();
    }

    value = u.makeString(value);

    getRedisClient(db, function (client) {
        client.setex(key, Math.round(ttl / 1000), value, redisCallbackGen('setex', callback, defer));
    });

    if (defer) {
        return defer.promise;
    }

}