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

      

  • 相关阅读:
    转: jsp之c标签
    win10下乌龟git安装和使用
    使用Node.js+Socket.IO搭建WebSocket实时应用
    前端优化
    pyqt5环境搭建
    pandas分页读取excel
    PySpark之RDD操作
    PySpark环境搭建
    Django与Celery最佳实践
    Elasticsearch的安装与简单使用
  • 原文地址:https://www.cnblogs.com/qiyc/p/14296899.html
Copyright © 2011-2022 走看看