redis lua脚本基本命令练习

redis中的eval的使用定义:

eval script numkeys key [key ...] arg [arg ...]

script:lua的脚本

numkeys:需要传入的参数个数

key:参数的key 在脚本中可以通过KEYS[1]获取

arg: 参数的value 在脚本中可以通过ARGV[1]获取


一些练习

例1、打印hello world

eval "return 'hello world'" 0

例2、计算3+3

"local sum=3+3 return sum" 0

例3、取传入参数的value,key

eval "local sum=ARGV[1]+ARGV[2] return sum" 2 var1 var2 1 2
(integer) 3

eval "local k=KEYS[1]..':'..KEYS[2] return k" 2 var1 var2 0 0
"var1:var2"

例4、执行lua脚本文件,通过redis.call()来调用redis提供的api

./redis-cli --eval ../lua-script/lua-test.lua 0
"hello world~!"
  lua脚本内容
local key ="test"
redis.call("set",key,"hello")
local msg  = redis.call("get",key)
msg=msg.." world~!"
redis.call("set",key,msg)
return msg
例5、将脚本文件缓存到redis服务端,返回的是这个文件的hash值
./redis-cli script load "$(cat ../lua-script/lua-test.lua)"
"585a7f206dc4fd137299f8676f0f30fa4c526a9c"

执行缓存在redis服务端的lua脚本

./redis-cli evalsha "585a7f206dc4fd137299f8676f0f30fa4c526a9c" 0
"hello world~!"
例6、判断redis服务端是否存在脚本缓存,返回1代表存在,0代表不存在
[root@bogon bin]# ./redis-cli script exists "585a7f206dc4fd137299f8676f0f30fa4c526a9c"
1) (integer) 1
//把redis服务重启后,会清掉lua脚本缓存,再次进行查看,结果会返回0
[root@bogon bin]# ./redis-cli script exists "585a7f206dc4fd137299f8676f0f30fa4c526a9c"
1) (integer) 0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值