Redis支持的Lua脚本调试
2024/5/29...大约 1 分钟
Redis支持的Lua脚本调试
打开 redis 的 cli
- 远程连接工具
- 直接 redis-cli 工具
在 Redis 容器中执行 Lua 脚本
使用命令
EVAL "lua_script" numkeys key [key ...] arg [arg ...]
其中 lua_script
是 Lua 脚本的内容,numkeys
是脚本中需要访问的键的数量,key
是需要访问的键的名称,arg
是脚本的参数。
例子1
EVAL "local name = ARGV[1]\nlocal age = ARGV[2]\n\nredis.call('SET', 'name', name)\nredis.call('SET', 'age', age)" 0 "John Doe" "30"
这个命令将会在 Redis 服务器上执行 Lua 脚本,并将 “John Doe” 存储在 name 键中,将 “30” 存储在 age 键中。
其中 \n
是换行
例子2
按照 score 倒序查询指定值到最大值之间的第一条数据,如果查到删除并返回没查到直接返回
eval "local res = redis.call('ZREVRANGEBYSCORE', KEYS[1], '+inf', ARGV[1], 'LIMIT', 0, 1) if #res == 0 then res = '' else redis.call('DEL', KEYS[1]) end return res[1]" 1 key1 10
插入数据
zadd key1 1 220.0
直接查询
ZREVRANGEBYSCORE key1 +inf 10 limit 0 1