gpt4 book ai didi

redis - 如何在Lua脚本中将…array传递给redis rpush?

转载 作者:行者123 更新时间:2023-12-03 06:42:16 29 4
gpt4 key购买 nike

我需要在redis中随时迭代ring,我有这个Lua脚本:

local result = redis.call('lrange','test',0,5)
redis.call('ltrim','test',5,-1)
redis.call('rpush','test',result)
return result
在这里,我对5个元素进行 lpop编码,然后需要对它们进行 rpush编码。
redis.call('rpush','test',result)
抛出错误 Lua redis() command arguments must be strings or integers,所以我需要像Lua中的 ...result这样的JavaScript。

最佳答案

我认为您可以为此使用unpack

local result = redis.call('lrange','test',0,5)
redis.call('ltrim','test',5,-1)
redis.call('rpush','test',unpack(result))
return result
在调用 lrange时,如果要保持列表大小不变,则(可能)需要使用 4而不是 5。这是使用 4执行示例的示例。
127.0.0.1:6379> rpush test a b c d e f
(integer) 6
127.0.0.1:6379> "EVAL" "local result = redis.call('lrange','test',0,4) redis.call('ltrim','test',5,-1) redis.call('rpush','test',unpack(result)) return result" "0"
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
127.0.0.1:6379> lrange test 0 -1
1) "f"
2) "a"
3) "b"
4) "c"
5) "d"
6) "e"

关于redis - 如何在Lua脚本中将…array传递给redis rpush?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63151268/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com