const Redis = require("ioredis");
const redis = new Redis({
port: 6300, // Redis port
host: '192.168.50.111', // Redis host
password: '123',
db: 0,
});

 1.第一种执行lua脚本的方式

const result3 = redis.eval(`return redis.call('MSET', KEYS[1],ARGV[1], KEYS[2],ARGV[2])`, 2, ['testKey1', 'testKey2', 'val1', 'val2'])
async function eval() {
let str = await result3;
console.log(str)
// await redis.evalTest('testKey1', 'testKey2', 'val1', 'val2');
const result = await redis.get('testKey1');
const result2 = await redis.get('testKey2');
console.log(result, result2);
}
eval()
执行结果

参照: https://www.runoob.com/redis/scripting-eval.html

参照文档可知道: keys全部写在前面,中间2是key的数量,val值后面排着写

  

2.第二种执行Lua方式

const luaScript = `return redis.call('MSET', KEYS[1],ARGV[1], KEYS[2],ARGV[2])`;

redis.defineCommand("evalTest", {
numberOfKeys: 2,
lua: luaScript,
})
async function eval() {
await redis.evalTest('testKey1', 'testKey2', 'val1', 'val2');
const result = await redis.get('testKey1');
const result2 = await redis.get('testKey2');
console.log(result, result2); // val2
}
eval();
执行结果

  

nodejs redis执行lua脚本的更多相关文章

  1. PHP中使用redis执行lua脚本示例

    摸索了一下在PHP中如何使用redis执行lua脚本,写了一个脚本如下,供以后参考 <?php $redis = new Redis(); #实例化redis类 $redis->conne ...

  2. SpringBoot + Redis 执行lua脚本

    1.背景 有时候,我们需要一次性操作多个 Redis 命令,但是 这样的多个操作不具备原子性,而且 Redis 的事务也不够强大,不支持事务的回滚,还无法实现命令之间的逻辑关系计算.所以,一般在开发中 ...

  3. Redis执行Lua脚本的情况

    第一个测试: 往Redis里面存入1000个Hash,每个Hash里面有100个元素(Key 0-99,值是Key^2). PHP代码,执行33s左右 <?php $redis = new Re ...

  4. Redis执行Lua脚本示例

    Redis在2.6推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行.使用脚本的好处如下: 1.减少网络开销:本来5次网络请求的操作,可以用一个请求完成,原先5次请求的逻辑放在red ...

  5. redis之lua脚本

    背景介绍 redis数据库提供了一些管理功能比如 流水线:打包发送多条命令,并在一个回复里面接收所有被执行命令的结果.事务:一次执行多条命令,被执行的命令要么就全部都被执行,要么就一个也不执行.并且事 ...

  6. Redis结合Lua脚本实现高并发原子性操作

    从 2.6版本 起, Redis 开始支持 Lua 脚本 让开发者自己扩展 Redis … 案例-实现访问频率限制: 实现访问者 $ip 在一定的时间 $time 内只能访问 $limit 次. 非脚 ...

  7. redis(6)lua脚本

    一.lua脚本 lua是一种轻量小巧的脚本语言,用标准的C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. lua的详细内容你可以参考lua官方网站 ...

  8. 【spring boot】【redis】spring boot基于redis的LUA脚本 实现分布式锁

    spring boot基于redis的LUA脚本 实现分布式锁[都是基于redis单点下] 一.spring boot 1.5.X 基于redis 的 lua脚本实现分布式锁 1.pom.xml &l ...

  9. 使用jedis执行lua脚本

    转: redis学习(十五) 使用jedis执行lua脚本(实现一个对IP的限流) 2018年09月15日 20:07:26 码农-文若书生 阅读数:1609   使用jedis执行lua脚本(实现一 ...

  10. .Net Core使用分布式缓存Redis:Lua脚本

    一.前言 运行环境window,redis版本3.2.1.此处暂不对Lua进行详细讲解,只从Redis的方面讲解. 二.Redis的Lua脚本 在Redis的2.6版本推出了脚本功能,允许开发者使用L ...

随机推荐

  1. SQL数学函数学习

    笔记来自如鹏网杨中科老师所著的 <程序员的SQL金典>#创建数据库表 CREATE Table T_Person ( FIdNumber VARCHAR(20), FName varcha ...

  2. [菜鸡随笔-2]用mv代替rm安全地进行删除操作的小技巧

    牢骚和背景介绍: rm -rf /*的梗 相信大家都听过笑过,我不止听过笑过,还不小心试过(不要熬夜写东西!).为此丢了我一周的心血,和40块钱(买u盘跑网吧下载引导文件).所幸,这只是在自己的机器上 ...

  3. Account Manager privacy agreement

    Account Manager privacy agreement [Account Manager] (hereinafter referred to as "we") )We ...

  4. python_基础_习题集(10.25更新)

    一.文件 1.利用文件充当数据库编写用户登录.注册功能 文件名称:userinfo.txt 基础要求: 用户注册功能>>>:文件内添加用户数据(用户名.密码等) 用户登录功能> ...

  5. efk部署

    转载: https://www.cnblogs.com/liweiboy/p/16100002.html

  6. Linux_CMD_FOR_OS_INFO

    1,系统版本 :  lsb_release -a 2,系统信息(86/64): uname -a 3,键盘信息:localectl status 4,系统支持的键盘:localectl list-ke ...

  7. 报错解决OSError: /lib64/libm.so.6: version `GLIBC_2.27' not found

    使用pyg报错如下: 1 Traceback (most recent call last): 2 File "main.py", line 18, in <module&g ...

  8. CH32V00+WS2812制作音乐谱显示

    CH32V003,自带运放.SPI.PWM等外设模块,关键还便宜,便宜,便宜! 可以尝试来实现一个低成本的音乐谱显示. 1. 硬件设计 显示方面,使用64颗ws2812组成8*8的显示阵列,通过 CH ...

  9. android root app 无法umount

    app已经有root权限了. 在执行umount /sbin时候总是不成功,但是在adb 的shell 里是可以的. 研究半天后发现,原来app的mount 空间被修改了. 用以下方法解决问. ech ...

  10. 网络-7 IPv6(下)

    Ipv6实验 一.华为 思科与华为在接口启用ipv6 思科会自动产生local地址 华为不会自动产生local地址 以太网接口有mac地址,所以肯定是有eui64 serial接口是没有mac地址,他 ...