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

      

  • 相关阅读:
    input file 多张图片上传 获取地址 ——fileReader
    15个常用的javaScript正则表达式
    sublime-emmet
    AMD-requireJS
    jQuery-lazyload参数
    easyui 查询条件form 数据遍历
    导出excel设置金额格式
    html5页面添加时间戳
    创建枚举
    定义实体转json需要方法
  • 原文地址:https://www.cnblogs.com/qiyc/p/14296899.html
Copyright © 2011-2022 走看看