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