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的值,有需要的自行改造

相关推荐
梦想不只是梦与想6 分钟前
MySQL 不同操作系统的安装方式
数据库·mysql·mysql安装
熊文豪7 分钟前
向量数据库单独建一套,这笔账划不划算
数据库
一只旭宝8 分钟前
预约系统版本2(基于第一版改良)
服务器·数据库·c++
卓怡学长10 分钟前
w192基于springboot教务管理系统
java·数据库·spring boot·spring·maven·intellij-idea
码农颜15 分钟前
6.4.1 监听连接
java·数据库·mysql
桐桐桐23 分钟前
Python 实战:批量生成带来源参数的 WhatsApp 短链 + 二维码
服务器·数据库·python·前端框架·ip·跨境电商·独立站
stereohomology37 分钟前
AI解读:某IM软件本地数据库密钥提取与解密
数据库·攻防·加密解密·数字平权
zzzll111140 分钟前
大模型技术原理与应用实践
java·数据库·人工智能
倔强的石头_42 分钟前
数据库迁移工具从单机作业走向云端协同
数据库
yours_Gabriel1 小时前
【一】数据库基础:SQL语句、函数、约束、多表查询、事务
数据库·sql·oracle