扩展Redis的Lua调用方式
Redis是支持Lua脚本的,但是我以为并不方便。
1. SCRIPT LOAD一个字符串拿到一个SHA,首先这个Lua script脚本就很难拿到。Linux一般用cat什么的。但是你作为PHP怎么拿到Lua的代码呢?
2. 记录一个SHA,而且SHA是随着Lua代码的变化而变化的。而且给EVALSHA的时候带来了麻烦,作为PHP如何写代码呢?
我扩展了一下Redis的代码。
1. 我在config里面加上了lua_script_path一项。(这个目录下,你可以放置N个Lua脚本,名字固然是彼此不同的。)
2. 增加命令SCRIPT RELOAD,可以从lua_script_path中加载其中所有的Lua脚本。(而且是真的Reload,就是说每次执行,所有的Lua脚本都会被执行加载动作,这样你随时可以方便改这里面的文件了。)
3. 增加了命令EVALFILE,evalfile a.lua 0 就可以执行lua_script_path下面的a.lua代码了。
https://github.com/healerkx/redis/commit/7f29b781df8bf6809c89c3c3b0282261987d42c1
扩展Redis的Lua调用方式的更多相关文章
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
jedis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分布式 ...
- 9、redis之事务2-Jedis的八种调用方式(事务、管道、分布式)介绍
1.普通同步 @Test public void test1Normal() { Jedis jedis = new Jedis("localhost"); long start ...
- 【转载】Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍
转载地址:http://blog.csdn.net/truong/article/details/46711045 关键字:Redis的Java客户端Jedis的八种调用方式(事务.管道.分布式…)介 ...
- redis之lua脚本
背景介绍 redis数据库提供了一些管理功能比如 流水线:打包发送多条命令,并在一个回复里面接收所有被执行命令的结果.事务:一次执行多条命令,被执行的命令要么就全部都被执行,要么就一个也不执行.并且事 ...
- Redis结合Lua脚本实现高并发原子性操作
从 2.6版本 起, Redis 开始支持 Lua 脚本 让开发者自己扩展 Redis … 案例-实现访问频率限制: 实现访问者 $ip 在一定的时间 $time 内只能访问 $limit 次. 非脚 ...
- redis(6)lua脚本
一.lua脚本 lua是一种轻量小巧的脚本语言,用标准的C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. lua的详细内容你可以参考lua官方网站 ...
- Redis之Lua的应用(四)
一.什么是Lua脚本 Lua是一个高效的轻量级脚本语言(和JavaScript类似),用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.Lu ...
- 红包雨中:Redis 和 Lua 的邂逅
2018年,王思聪的冲顶大会,西瓜视频的百万英雄,再到映客的芝士超人,直播答题火爆全网. 我服务的一家电商公司也加入了这次热潮,技术团队研发了直播答题功能.答题结束之后,红包会以红包雨的形式落下,用户 ...
- redis使用Lua脚本
最近在看<Redis入门指南>第二版,感觉收获挺大,推荐大家有时间看一看.其中有一章讲Lua脚本,感觉挺实用,把总结整理一下. Redis在2.6中推出了脚本功能,允许开发者使用Lua语言 ...
随机推荐
- git stash -u 添加新文件
git 提交 有新文件执行 git stash -u ------ 如果已经执行git stash,会发现有UNtracked这个单词 说明新文件没有添加进去,此时 执行 git stash ...
- IBM Domino 9 出现 Server Controller 未在主机上运行或未在端口2050监听 解决方案
如果在网上搜索的方法,比如防火墙开端口还没有解决的话,那么我的解决方案可能会解决你的问题. 出现的场景: 我先装了Notes,Designer,后装Domino Server, 配置Domino服务器 ...
- [抓紧小长假的尾巴] 分析一个KeyFileMe
系统 : Windows xp 程序 : keyfileme 程序下载地址 :http://pan.baidu.com/s/1qYVfvu0 要求 : 编写KeyFile 使用工具 : OD 可在看雪 ...
- mvc3 上传图片
这是在Control里使用的代码,是在后台管理需要上传图片时使用的,不过我在这犯了一个错误, Request.Files[inputName];inputName名字中的大小写<input ty ...
- Linux自己安装redis扩展
注意:目录的权限 chomd 777 -R 注意:下面涉及的目录只是我自己安装的目录,要找自己对应的目录文件 1.安装redis 下载:https://github.com/nicolasff/p ...
- 技海拾贝 - Java
1. Java中的多线程 http://blog.csdn.net/luoweifu/article/details/46673975 Java中继承thread类与实现Runnable接口的区别 h ...
- android studio对于错误拼写/不识别的英文单词,给予波浪提示
使用自己的名字当Tag.却发现有个非常不用好的提示.波浪,我浪个你妹. Typo:In word ‘miyuehu’ less...(Ctrl+F1) spellchecker inspection ...
- C#的循环语句练习
1.输入一个整数,算出从1到这个数每个数阶乘的和. 2.求100以内质数的和. 3.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问几个月后有多少对兔子,幼兔,小兔,成兔分别是 ...
- Android 的 DatePicker、TimePicker或NumberPicker
布局文件加上这个就可以,去除日期选择器.时间选择器或数值选择器的可编辑状态. android:descendantFocusability="blocksDescendants" ...
- FTP上传-封装工具类
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...