6.Redis-使用lua语言

6.1 Evalsha LOAD 命令

 

  1. Redis Script Load 命令用于将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本
  2. 脚本可以在缓存中保留无限长的时间,直到执行 SCRIPT FLUSH 为止。

 

 

  1. Redis Evalsha 命令根据给定的 sha1 校验码,执行缓存在服务器中的脚本。
  2. 将脚本缓存到服务器的操作可以通过 SCRIPT LOAD 命令进行。
  3. 这个命令的其他地方,比如参数的传入方式,都和 EVAL 命令一样
 redis-cli

127.0.0.1:6379> eval "redis.call('set',KEYS[1],ARGV[2])" 2 key1 key2 value1 value2

(nil)

127.0.0.1:6379> get key1

"value2"

127.0.0.1:6379> SCRIPT LOAD "redis.call('set',KEYS[1],ARGV[2])"  # 载入一个脚本

"3f9495b29eea0437ce3e9fe1a6f36277d7e6f361"

127.0.0.1:6379> EVALSHA 3f9495b29eea0437ce3e9fe1a6f36277d7e6f361 2 key1 key2 bian1 bian2

(nil)

127.0.0.1:6379> get key1

"bian2"

 

 

 

6.2 Redis Script Exists 和Flush命令

  1. Redis Script Exists 命令用于校验指定的脚本是否已经被保存在缓存当中。
  2. Redis Script Flush 命令用于清除所有 Lua 脚本缓存。
127.0.0.1:6379> SCRIPT EXISTS 3f9495b29eea0437ce3e9fe1a6f36277d7e6f361

1) (integer) 1

127.0.0.1:6379> SCRIPT FLUSH  # 清空缓存

OK

127.0.0.1:6379> SCRIPT EXISTS 3f9495b29eea0437ce3e9fe1a6f36277d7e6f361

1) (integer) 0

127.0.0.1:6379>

 

 

6.3 Script kill 命令

  1. Redis Script kill 命令用于杀死当前正在运行的 Lua 脚本,当且仅当这个脚本没有执行过任何写操作时,这个命令才生效。

 

  1. 这个命令主要用于终止运行时间过长的脚本,比如一个因为 BUG 而发生无限循环的脚本。

 

  1. SCRIPT KILL 执行之后,当前正在运行的脚本会被杀死,执行这个脚本的客户端会从 EVAL 命令的阻塞当中退出,并收到一个错误作为返回值。
redis 127.0.0.1:6379> SCRIPT KILL

OK

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值