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({
|
add: defineScript({
|
||||||
NUMBER_OF_KEYS: 1,
|
NUMBER_OF_KEYS: 1,
|
||||||
SCRIPT:
|
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> {
|
transformArguments(key: string, toAdd: number): Array<string> {
|
||||||
return [key, number.toString()];
|
return [key, toAdd.toString()];
|
||||||
},
|
},
|
||||||
transformReply(reply: number): number {
|
transformReply(reply: number): number {
|
||||||
return reply;
|
return reply;
|
||||||
|
@@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
This folder contains example scripts showing how to use Node Redis in different scenarios.
|
This folder contains example scripts showing how to use Node Redis in different scenarios.
|
||||||
|
|
||||||
| File Name | Description |
|
| File Name | Description |
|
||||||
|--------------------------|--------------------------------------|
|
| ------------------------ | ----------------------------------------------------------------------------- |
|
||||||
| `connect-as-acl-user.js` | Connect to Redis 6 using an ACL user |
|
| `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
|
## 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