作者:魑魅魍魉龌蹉尴尬 | 来源:互联网 | 2023-09-11 18:49
我不知道它的nodejs客户端详细信息,但是以下是lua中非常简单的indexOf命令的实现。
在我的文件中,indexof.lua
我有以下代码:
local key = KEYS[1]
local obj = ARGV[1]
local items = redis.call('lrange', key, 0, -1)
for i=1,#items do
if items[i] == obj then
return i - 1
end
end
return -1
让我们将一些值推到mylist
。
> rpush mylist foo bar baz qux
(integer) 4
我们可以使用lua脚本在列表中找到任何值的索引。该命令为O(N)。
$ redis-cli --eval indexof.lua mylist , bar
(integer) 1
的索引bar
为1
> lindex mylist 1
"bar"
的索引nil
是-1
$ redis-cli --eval indexof.lua mylist , nil
(integer) -1
请参阅有关EVAL命令的http://redis.io/commands/eval其他文档。