Lua脚本的基本使用

  • 使用Lua脚本的好处

  1. 一次性发送多个命令,减少网络开销。(是多个reids命令的集合,不用每次都去建立连接)
  2. 原子性       (redis会将这个lua脚本认为是一个整体去执行,不会被打断,所以保证原子性)
  3. lua  文件复用   (命令非常多,可以放在一个文件中,这样其他的redis也可以调用,使其复用)
  • 基本用法

127.0.0.1:6379> eval "return 'hello world'" 0
"hello world"
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> eval "return redis.call('set',KEYS[1],ARGV[1])" 1 HZ 2222
OK
127.0.0.1:6379> keys *
1) "HZ"
127.0.0.1:6379> get hz
(nil)
127.0.0.1:6379> get HZ
"2222"
127.0.0.1:6379> 
  • lua文件的用法

[root@iZ2ze09u9vrxaf1z3n8oomZ bin]# ls
dump.rdb  redis-benchmark  redis-check-rdb  redis-sentinel
hz.lua    redis-check-aof  redis-cli        redis-server
[root@iZ2ze09u9vrxaf1z3n8oomZ bin]# ./redis-cli --eval hz.lua 0
"22222222222"
[root@iZ2ze09u9vrxaf1z3n8oomZ bin]# vim hz.lua 

redis.call('set','hz','22222222222')
return redis.call('get','hz')
  • 对lua脚本生成摘要

127.0.0.1:6379> script load "return 'hello world'"    //生成摘要
"5332031c6b470dc5a0dd9b4bf2030dea6d65de91"
127.0.0.1:6379> evalsha "5332031c6b470dc5a0dd9b4bf2030dea6d65de91"  0    //通过摘要执行命令
"hello world"
127.0.0.1:6379> 
  • 如果lua脚本出现了死循环怎么办?

新打开一个客户端,使用   script kill 命令停止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值