PHP中使用redis 执行lua脚本
在php中,可以通过redis执行lua脚本
1、脚本
<?php
$redis = new Redis(); #实例化redis类
$redis->connect('127.0.0.1'); #连接服务器
$lua = <<<SCRIPT
return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}
SCRIPT;
//对应的redis命令如下 eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
$s = $redis->eval($lua,array('key1','key2','first','second'),2);
var_dump($s);
$redis->close(); #关闭连接
?>
2、代码解析
1)eval() 方法
redis->eval($lua, array('key1','key2','first','second'),2);
eval方法的参数 3个:
第一个参数:脚本代码
第二个参数:参数数组,
第三个参数:是个整数,表示第二个参数中的前几个是key参数,剩下的都是附加参数
2)这个执行的对应命令如下
eval “return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}” 2 key1 key2 first
second
解释:
return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}
Lua 脚本
redis->eval($lua, array(‘key1’,‘key2’,‘first’,‘second’),2);
$lua是Lua脚本;
key1 和 key2 是键名参数,分别使用 KEYS[1] 和 KEYS[2] 访问;
first 和 second 是附加参数,可以通过 ARGV[1] 和 ARGV[2] 访问它们;
数字 2 指定了键名参数的数量;
来源:https://blog.csdn.net/JineD/article/details/108645752
PHP中使用redis 执行lua脚本相关推荐
- PHP中使用redis执行lua脚本示例
一.引言 redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当中,来扩展其功 ...
- redis执行lua脚本
从redis 2.6.0版本开始,redis内置了Lua解释器,并提供了eval命令来解析Lua脚本求值. 1. 语法格式 语法: eval script numkeys keys args 参数: ...
- 【已解决】Java 项目中利用 Redis 配合 Lua 脚本对短信推送消息做推送限制
- redis之lua脚本: 原子性 调试 嵌入高级语言
实验环境: redis: 6.0.9 redis执行lua脚本时, 出错不会回滚(rollback) 我们知道, 使用lua脚本可以在执行一串redis命令时, 实现一定原子性(lua脚本中多条指令执 ...
- Redis:EVAL执行Lua脚本
EVAL 脚本 numkeys 键[键...] arg [arg ...] 自Redis2.6.0版本起可用. 时间复杂度:取决于执行的脚本. EVAL介绍 EVAL和EVALSHA用于从Redis2 ...
- Redis进阶-lua脚本
文章目录 Pre 语法 jedis操作lua 好处 lua实战 注意事项 Pre Redis在2.6推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行. 语法 从Redis2.6.0 ...
- nx set 怎么实现的原子性_【redis进阶(1)】redis的Lua脚本控制(原子性)
[toc] 为什么要用lua 减少网络开销:本来5次网络请求的操作,可以用一个请求完成,原先5次请求的逻辑放在redis服务器上完成.使用脚本,减少了网络往返时延. 原子操作:Redis会将整个脚本作 ...
- Redis 使用 Lua 脚本进行原子操作
Redis 使用 Lua 脚本进行原子操作 Intro 之前写过一篇文章也是 Redis 使用 LUA 脚本实现分布式的 CAS 操作,可以参考:基于 Redis 实现 CAS 操作 最近使用 Red ...
- 红包雨中:Redis 和 Lua 的邂逅
2018年,王思聪的冲顶大会,西瓜视频的百万英雄,再到映客的芝士超人,直播答题火爆全网. 我服务的一家电商公司也加入了这次热潮,技术团队研发了直播答题功能.答题结束之后,红包会以红包雨的形式落下,用户 ...
最新文章
- 自拟计算机作文100字,玩电脑作文100字胡佳慧
- VsCode中文乱码解决方法
- Java的多线程问题追根溯源。
- 吴恩达机器学习Ex2
- 汉澳sinox2014x64server已经能够下载
- fir.im 持续集成技术实践
- 《悦趣式连锁反应》玩转STEM教育!529块积木元件,N+1款炫酷模型
- 怎么用git将本地代码上传到远程服务器_git在远程服务器创建项目并将本地代码推送到服务器上...
- pdf虚拟打印机下载win7_虚拟打印机(smartprinter) v4.2官方版
- python set集合转numpy.array
- ps软件与计算机不兼容怎么办,电脑有Photoshop软件但是却无法打开PSD文件该怎么办-电脑自学网...
- 用html编写古诗词欣赏,品析古诗词画面描写之技巧
- 如何解决服务器响应过慢的问题,服务器响应速度慢的处理方法
- 开拓者队医当选年度最佳 球迷:罗伊情何以堪
- Python基础——文件
- bing每日壁纸_如何将Bing的每日背景用作Ubuntu壁纸
- x7 z8750 linux,GPD Pocket 7.0英寸 口袋笔记本电脑(Atom x7-Z8750、8GB、128GB、触屏)
- 杰理-AC632x开发之usb无法下载问题和原因
- 请问想考软考,零基础的话,哪个证书最好考呢
- Python实现手机号码归属地查询功能
热门文章
- QT的QDesignerTaskMenuExtension类的使用
- 27.垃圾收集器(Serial收集器、ParNew收集器、Parallel收集器、Parallel Old 收集器、CMS收集器、G1收集器、常用的收集器组合)
- 常见RAID的各级别的特性简介(RAID0、1、5、6、10)
- 1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project
- 7.MongoDB java CRUD
- 根据不同的操作系统读取配置文件/java读取属性文件代码
- ubunto用户切换
- 【tensorflow】Sequential 模型方法
- mysql如何drop数据库_mysql drop database删除数据库命令实例讲解
- 小猪佩奇python_一段代码画出小猪佩奇社会人 Python