跳到主要内容

Eval

2025年01月06日
柏拉文
越努力,越幸运

一、认识


可以使用 EVAL 命令执行 Lua 脚本。EVAL:用于直接执行 Lua 脚本。

二、语法


2.1 Node.js

const Redis = require('ioredis');
const redis = new Redis();

// Lua 脚本:检查键是否存在,如果存在则返回其值,否则设置为默认值
const luaScript = `
if redis.call('exists', KEYS[1]) == 1 then
return redis.call('get', KEYS[1])
else
redis.call('set', KEYS[1], ARGV[1])
return ARGV[1]
end
`;

// 执行 Lua 脚本
async function runLuaScript() {
try {
const result = await redis.eval(luaScript, 1, 'mykey', 'default_value');
console.log(result); // 输出键的值(如果存在)或者设置的默认值
} catch (error) {
console.error('Error executing Lua script:', error);
}
}

runLuaScript();

2.2 Lua 脚本

if redis.call('exists', KEYS[1]) == 1 then
return redis.call('get', KEYS[1])
else
redis.call('set', KEYS[1], ARGV[1])
return ARGV[1]
end