nodejs redis执行lua脚本
2024-10-19 03:26:36
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();
执行结果
最新文章
- 禁止从别的应用启动Activity
- java 实现WebService 以及不同的调用方式
- PHP入门教程-开发环境搭建
- .Net基础
- OpneCV 二值图像区域处理
- Ext TreeGrid提交修改过的数据
- 《Linux内核设计与实现》读书笔记(七)- 中断处理【转】
- 云计算平台(检索篇)-Elasticsearch
- sqlserver时间字符串的截取
- 强大的Core Image框架,各种滤镜处理图像
- 求最小生成树(Prim算法)(1075)
- php中常用的字符串格式化函数
- 网关 php-cgi fastcgi phpfpm
- JavaSE语法基础(3)---函数、数组
- 初识gd库
- 使用Autoencoder进行降维
- 【Linux常用命令】
- jetty 客服端 与服务端
- (转+整理)C# BinaryFormatter进行序列化与反序列化
- JAVA设计模式详解(六)----------状态模式
热门文章
- python菜鸟学习: 12. 装饰器的中级用法
- sentinel监控数据持久化&;本地测试
- vue3 门户网站搭建5-图标
- Python系统模块os.py和sys.py常用函数
- 报错解决OSError: /lib64/libm.so.6: version `GLIBC_2.27' not found
- Ehlib的DBGridEh 控件导出到Excel
- 关于DVWA踩坑
- 操作系统实战45讲笔记- 05 CPU工作模式:程序执行的三种模式
- profile2的原理猜想
- fetchAll 的小小分析