gpt4 book ai didi

Redis 获取多个 LIST 键的第一个元素

转载 作者:可可西里 更新时间:2023-11-01 11:12:26 24 4
gpt4 key购买 nike

有没有办法获取许多列表的(在不同的键中)第一个项目?

所以

K1 = [1,2,3,4]
K2 = [19, 24]

> XXXX K1, K2 ==> [1, 19]

对于不存在的列表,它应该以某种方式指示:

K1 = [1,2,3,4]
K2 = [19, 24]

> XXXX K1, K3, K2 ==> [1, None, 19]

假设我有 2000 个 key 需要更新,但我不想进行 2000 次查询。我也无法获得所有 2000 个完整值,因为列表很长(假设长度为 500)

最佳答案

您将进行此数量的查询,每个列表的键一个。但是,可以使用 pipelining 优化工作流程或 Lua script :

$ redis-cli RPUSH K2 19 24
(integer) 2
$ redis-cli RPUSH K1 1 2 3 4
(integer) 4
$ redis-cli --eval mlrange.lua K1 K3 K2
1) "1"
2) (nil)
3) "19"
$ cat mlrange.lua
local reply = {}
for _, key in ipairs(KEYS) do
local elems = redis.call('LRANGE', key, 0, 0)
if elems then
reply[#reply+1] = elems[1]
else
reply[#reply+1] = false
end
end
return reply

关于Redis 获取多个 LIST 键的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54467288/

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