可能是因为你的 Lua 脚本中没有考虑到列表已经存在的情况。在这种情况下,你需要将新的值添加到现有的列表中,而不是创建一个新的列表。

你可以尝试修改你的 Lua 脚本,以便在列表已经存在的情况下将新的值添加到现有的列表中,如下所示:

$_LUA= <<< LUA local temp = redis.pcall('exists',KEYS[1]); if temp == 0 then local shuzu = cjson.decode(ARGV[2]); for q=1,tonumber(ARGV[1]),1 do redis.pcall('rpush',KEYS[1],shuzu[q]) end else local shuzu = cjson.decode(ARGV[2]); for q=1,tonumber(ARGV[1]),1 do redis.pcall('lpush',KEYS[1],shuzu[q]) end end LUA;

在这个修改后的 Lua 脚本中,如果列表已经存在,它将使用 lpush 命令将新的值添加到列表的开头,而不是使用 rpush 命令将新的值添加到列表的末尾。

$_LUA= LUAlocal temp = redispcallgetKEYS1;if temp == nil then local shuzu = cjsondecodeARGV2; for q=1tonumberARGV11 do redispcallrpushKEYS1shuzuq endendLUA;我用php redis执行这段lua脚本不能向red

原文地址: https://www.cveoy.top/t/topic/baSO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录