redis --- lua 脚本实现原子操作

如题, 楼主的想法很简单, lua 脚本本身支持原子性, 所以把命令写进一个脚本就行, 当然后续还会优化才能放到生产上,例如缓存脚本 ,redis 本身会缓存执行过的脚本 ,这样速度更快, 再优化, 有个专门的redis 来放 缓存的脚本,总之性能优化是多种多样的,满足了业务上的性能需求就好 ,今天先贴个最low 的demo 

redis-cli 命令行

EVAL " local mrest=redis.call('set',KEYS[1],ARGV[1]);redis.call('expire',KEYS[1],ARGV[2]);return mrest;"  1   "rsz"  "zhaoruizhi"  1000

也很好理解这段脚本 ,设置一个值,并设置它的生存时间,这只是个demo ,可能没有什么意义,但是 ,你可以用其他的命令组和,实现一些复杂的有意义的操作哈,

再来看一个带条件判断的 eval "local a=10;if a==10 then return  KEYS[1]   ; else return ARRGV[1] end  "  1 "sssd" "fdfdfd"

返回   "sssd"

我们可以记一下lua的if else 语句   

 

if a==10 then .....;else ...... end   //分支语句 。lua 不支持switch 语句,所有分支的话就用 if else实现吧 。 优化后续再记。

 

转载于:https://www.cnblogs.com/anyehome/p/10243078.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值