zoukankan      html  css  js  c++  java
  • nodejs redis执行lua脚本

    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();
    执行结果

      

  • 相关阅读:
    python编程基础之十四
    python编程基础之十三
    python编程基础之十二
    C++11的新特性
    第六章 分支语句和逻辑运算符
    第五章 循环和关系表达式
    C++ 管理数据内存的方法
    C++数组和指针
    第二、三章 开始学习C++、数据处理
    第一章 预备知识
  • 原文地址:https://www.cnblogs.com/qiyc/p/14296899.html
Copyright © 2011-2022 走看看