Redis 执行Lua脚本

Redis 执行lua 脚本

redis incr 命令当Key不存在时会默认设置key 并自增为1,如果需要在key不存在时重新初始化key 可以在应用程序中判断,也可以直接使用lua脚本

Redis 执行lua脚本命令

Script load

将脚本 script 添加到Redis服务器的脚本缓存中,并不立即执行这个脚本,而是会立即对输入的脚本进行求值。并返回给定脚本的 SHA1 校验和。如果给定的脚本已经在缓存里面了,那么不执行任何操作。

bash 复制代码
script load "local exists = redis.call('exists', KEYS[1]); if (exists == 1) then return redis.call('incr', KEYS[1]); end return nil;"

返回: 66dbc284948b243d16fd97265e0eac41567c29ed

需要调用该脚本时可以使用

bash 复制代码
 EVALSHA 66dbc284948b243d16fd97265e0eac41567c29ed  1 testIncr

1代表参数下标

testIncr 代表 参数值

直接调用lua脚本

bash 复制代码
 eval "local exists = redis.call('exists', KEYS[1]); if (exists == 1) then return redis.call('incr', KEYS[1]); end return nil;" 1 testIncr

判断脚本是否存在

bash 复制代码
SCRIPT EXISTS 66dbc284948b243d16fd97265e0eac41567c29ed

杀掉Lua脚本

bash 复制代码
SCRIPT KILL

清空Lua脚本

bash 复制代码
SCRIPT FLUSH

上述命令可以新增一个参数,用以设置在Key不存在时,初始化Key的值,有需要的自行改造

相关推荐
独自破碎E3 分钟前
【面试真题拆解】Redis的8种内存淘汰策略
redis·面试·职场和发展
青柠代码录7 分钟前
【MySQL】DISTINCT 详解
数据库·mysql
数据知道7 分钟前
MongoDB查询执行计划解读:executionStats详细分析与性能诊断
数据库·mongodb
筵陌9 分钟前
MySQL Connector/C API的使用
数据库·mysql
霖霖总总18 分钟前
[Redis小技巧15]Redis AOF 重写与混合持久化深度解析:从原理到生产实践
数据库·redis
moxiaoran575323 分钟前
MySQL分库分表的实现(一)
数据库·mysql
Y0011123626 分钟前
Day6-MySQL-函数
数据库·sql·mysql
召田最帅boy31 分钟前
使用自定义图片作为Emoji表情的技术实现
数据库·html
项目工程打工马36 分钟前
Ubuntu 上 Redis 安装和使用详细指南(新手友好版)
linux·redis·ubuntu
2401_853576501 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python