You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Add lua-multi-incr.js
example (#1692)
Also fix syntax error in the lua example in the README Closes #1689.
This commit is contained in:
@@ -209,9 +209,9 @@ import { createClient, defineScript } from 'redis';
|
||||
add: defineScript({
|
||||
NUMBER_OF_KEYS: 1,
|
||||
SCRIPT:
|
||||
"local val = redis.pcall('GET', KEYS[1]);' + 'return val + ARGV[1];",
|
||||
"local val = redis.pcall('GET', KEYS[1]);" + "return val + ARGV[1];",
|
||||
transformArguments(key: string, toAdd: number): Array<string> {
|
||||
return [key, number.toString()];
|
||||
return [key, toAdd.toString()];
|
||||
},
|
||||
transformReply(reply: number): number {
|
||||
return reply;
|
||||
|
@@ -2,9 +2,10 @@
|
||||
|
||||
This folder contains example scripts showing how to use Node Redis in different scenarios.
|
||||
|
||||
| File Name | Description |
|
||||
|--------------------------|--------------------------------------|
|
||||
| `connect-as-acl-user.js` | Connect to Redis 6 using an ACL user |
|
||||
| File Name | Description |
|
||||
| ------------------------ | ----------------------------------------------------------------------------- |
|
||||
| `connect-as-acl-user.js` | Connect to Redis 6 using an ACL user |
|
||||
| `lua-multi-incr.js` | Define a custom lua script that allows you to perform INCRBY on multiple keys |
|
||||
|
||||
## Contributing
|
||||
|
||||
|
31
examples/lua-multi-incr.js
Normal file
31
examples/lua-multi-incr.js
Normal file
@@ -0,0 +1,31 @@
|
||||
// Define a custome lua script that accepts two keys and an amount to
|
||||
// increment each of them by
|
||||
|
||||
import { createClient, defineScript } from 'redis';
|
||||
|
||||
async function luaMultiIncr() {
|
||||
const client = createClient({
|
||||
scripts: {
|
||||
mincr: defineScript({
|
||||
NUMBER_OF_KEYS: 2,
|
||||
SCRIPT:
|
||||
'return {' +
|
||||
'redis.pcall("INCRBY", KEYS[1], ARGV[1]),' +
|
||||
'redis.pcall("INCRBY", KEYS[2], ARGV[1])' +
|
||||
'}',
|
||||
transformArguments(key1, key2, increment) {
|
||||
return [key1, key2, increment.toString()];
|
||||
},
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
|
||||
await client.set('mykey', '5');
|
||||
console.log(await client.mincr('mykey', 'myotherkey', 10)); // [ 15, 10 ]
|
||||
|
||||
await client.quit();
|
||||
}
|
||||
|
||||
luaMultiIncr();
|
Reference in New Issue
Block a user