redis脚本命令

2022/09/29 redis 共 620 字,约 2 分钟

redis内置了Lua 5.1引擎. 可以很方便的执行lua脚本. 有了这个利器, 我们就可以在redis命令的基础上自己组合命令并原子性执行了.

eval命令执行lua脚本

如果要调用

EVAL script numkeys [key [key ...]] [arg [arg ...]]

  • script lua脚本, 字符串
  • numkeys 后置keys的数量. 0表示没有参数
  • key 的参数. 可以在lua脚本里通过 “KEYS[index]”来指定key. 会在脚本执行前替换
  • arg 参数. 和keys类似. keys数量之后的参数都是args. 可以用ARGV[index]指定.

demo

# 执行一段lua脚本, 返回输入的各个参数. 前2个是key, 后面的都是args
redis> EVAL "return { KEYS[1], KEYS[2], ARGV[1], ARGV[2], ARGV[3] }" 2 key1 key2 arg1 arg2 arg3
1) "key1"
2) "key2"
3) "arg1"
4) "arg2"
5) "arg3"

lua脚本

lua脚本调redis指令

最常用的很是就是call方法了

redis.call(command [,arg...])

  • command redis命令
  • args redis命令所需参数

demo

# 执行lua脚本, 设置key=a , v = 1
redis> eval "redis.call('set','a',1)" 0

# 验证
redis> get a  # 结果 1

不定期更新中…

参考

redis lua

文档信息

Search

    Table of Contents