1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-06 02:15:48 +03:00

Use first word of multi word commands

Close #363.

Signed-off-by: DTrejo <david.daniel.trejo@gmail.com>
This commit is contained in:
Jonas Dohse
2013-01-10 15:35:15 +00:00
committed by DTrejo
parent 938c0526a0
commit f0ae6642f9
3 changed files with 28 additions and 1 deletions

View File

@@ -543,6 +543,15 @@ This will display:
`send command` is data sent into Redis and `on_data` is data received from Redis. `send command` is data sent into Redis and `on_data` is data received from Redis.
## Multi-word commands
To execute redis multi-word commands like `SCRIPT LOAD` or `CLIENT LIST` pass
the second word as first parameter:
client.script('load', 'return 1');
client.multi().script('load', 'return 1').exec(...);
client.multi([['script', 'load', 'return 1']]).exec(...);
## client.send_command(command_name, args, callback) ## client.send_command(command_name, args, callback)
Used internally to send commands to Redis. For convenience, nearly all commands that are published on the Redis Used internally to send commands to Redis. For convenience, nearly all commands that are published on the Redis

View File

@@ -865,7 +865,9 @@ commands = set_union(["get", "set", "setnx", "setex", "append", "strlen", "del",
"persist", "slaveof", "debug", "config", "subscribe", "unsubscribe", "psubscribe", "punsubscribe", "publish", "watch", "unwatch", "cluster", "persist", "slaveof", "debug", "config", "subscribe", "unsubscribe", "psubscribe", "punsubscribe", "publish", "watch", "unwatch", "cluster",
"restore", "migrate", "dump", "object", "client", "eval", "evalsha"], require("./lib/commands")); "restore", "migrate", "dump", "object", "client", "eval", "evalsha"], require("./lib/commands"));
commands.forEach(function (command) { commands.forEach(function (fullCommand) {
var command = fullCommand.split(' ')[0];
RedisClient.prototype[command] = function (args, callback) { RedisClient.prototype[command] = function (args, callback) {
if (Array.isArray(args) && typeof callback === "function") { if (Array.isArray(args) && typeof callback === "function") {
return this.send_command(command, args, callback); return this.send_command(command, args, callback);

16
test.js
View File

@@ -406,6 +406,22 @@ tests.EVAL_1 = function () {
} }
}; };
tests.SCRIPT_LOAD = function() {
if (server_version_at_least(bclient, [2, 5, 0])) {
var name = "SCRIPT_LOAD",
command = "return 1",
commandSha = crypto.createHash('sha1').update(command).digest('hex');
bclient.script("load", command, function(err, result) {
assert.strictEqual(result.toString(), commandSha);
next(name);
});
} else {
console.log("Skipping " + name + " because server version isn't new enough.");
next(name);
}
};
tests.WATCH_MULTI = function () { tests.WATCH_MULTI = function () {
var name = 'WATCH_MULTI', multi; var name = 'WATCH_MULTI', multi;