Redis 脚本

Redis 脚本

一、Redis 脚本 脚本定义

  • Redis 脚本,使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。
  • Redis事务有一定的局限性。可以使用reids脚本代替redis队列。

二、Redis脚本优势

  • 高效性:减少网络开销及时延,多次redis服务器网络请求的操作,使用LUA脚本可以用一个请求完成。
  • 数据可靠性:Redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。
  • 复用性:LUA脚本执行后会永久存储在Redis服务器端,其他客户端可以直接复用。
  • 替代redis的事务功能 :redis自带的事务功能很鸡肋,报错不支持回滚,而redis的lua脚本几乎实现了常规的事务功能,支持报错回滚操作,官方推荐如果要使用redis的事务功能可以用redis lua替代
  • 可嵌入性 :可嵌入JAVA,C#等多种编程语言,支持不同操作系统跨平台交互

三、使用Redis脚本注意事项

  • 不要在Lua脚本中出现死循环和耗时的运算,否则redis会阻塞,将不接受其他的命令, 所以使用时要注意不能出现死循环、耗时的运算。
  • redis是单进程、单线程执行脚本。管道不会阻塞redis。

四、演示脚本

  • 脚本内容
    if redis.call("EXISTS",KEYS[1]) == 1 then
        return redis.call("INCRBY",KEYS[1],ARGV[1])
    else
        return redis.call("SET",KEYS[1],ARGV[1])
    end
    
  • 执行脚本
    redis-cli --eval /you_path/script.lua jack , 2
    

参考

redis lua:官方文档:https://redis.io/commands/eval

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值