0%

Redis Lua script

Redis Lua脚本的几种应用场景

批量删除符合某种pattern的keys

bin/redis-cli eval “return redis.call(“del”,unpack(redis.call(“keys”,ARGV[1])))” 0 “HelloWorld*”
该命令会删除所有以HelloWorld开头的keys。

迁移db index的lua脚本

1
2
3
4
5
6
7
8
local result={};

local keys =redis.call("keys","*");

for i = 1, #keys do
local val= redis.call("move", keys[i], 0);
end
return result;

以上也是很常见的一种脚本范式,先根据需要查询获取到所有的key,再遍历这些key进行想要的操作,例如move, del, rename等等。