redis中使用lua脚本以及c++调用lua脚本

1.lua语言

lua 是一种小巧的脚本语言,多用于游戏脚本的开发中。
菜鸟教程 lua教程

2.redis调用lua脚本的好处

  • lua脚本原子性执行。redis在执行lua脚本的时候,是不处理其它的任务的,这样利用lua脚本就可以处理很多事务。这些如果不用lua脚本而是通过命令去实现的话,将会非常复杂。
  • 增强计算能力。lua脚本的引入,强化了redis了本来薄弱的计算能力。单纯的redis是基本不具备计算能力,lua弥补了这一不足。
  • 降低网络IO。lua脚本可以一次性发送到redis-server,避免了多次交互带来的网络开销。
  • 提高复用。lua脚本加载到redis-server之后,可以通过返回的SHA1值服用此脚本。但目前不知道这些SHA1丢失了后该如何再次获得,或者说redis是否有管理这些SHA1的方法暴露给用户

3.redis调用lua脚本的方法

  • eval
eval "return redis.call('set',KEYS[1],ARGV[1])" 1 chao 100
get chao #100
eval "return redis.call('set',KEYS[1],KEYS[2])" 2 chao 100
get chao #100
  • script load&&evalsha
    evalsha
  • script flush清空所有load过的所有lua脚本
  • script exists sha1value 查看某lua脚本是否存在
  • script kill杀死所有在运行的lua脚本进行(难道同时在运行的lua脚本不是只有一个吗)
  • note:KEYS和ARGV在命令行中都必须要大写
  • 问题:SHA1丢失后如何再次获得,通过SHA1值去和获取lua脚本内容

4.c/c++调用lua脚本

redis官方网站推荐的C++客户端中,redis-plus-plus是支持lua脚本的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值