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

相关推荐
点灯小铭1 分钟前
基于51单片机的LED点阵汉字显示系统设计
数据库·单片机·嵌入式硬件·毕业设计·51单片机·课程设计·期末大作业
SilentSamsara2 分钟前
DuckDB + Python:嵌入式 OLAP 数据库的轻量分析实战
开发语言·数据库·python·微服务
Nturmoils8 分钟前
从 MySQL 到 KingbaseES:Database、Schema、User 一次讲透
数据库·后端
我是一颗柠檬9 分钟前
【Redis】Redis面试高频考点汇总Day15(2026年)
数据库·redis·缓存·面试
姚愚谦12 分钟前
Redis源码阅读1-SDS
redis
小森林之主13 分钟前
凌晨3点的闹钟:分布式定时任务设计实战
java·redis·任务调度·cron·分布式定时任务
Amnesia0_015 分钟前
MYSQL中表的基本查询
数据库·mysql
Database_Cool_18 分钟前
Doris vs 阿里云 AnalyticDB MySQL vs ClickHouse:3 大 OLAP 产品 2026 深度对比
数据库·mysql·阿里云
金融支付架构实战指南19 分钟前
秒杀&支付订单异步落地|Redis Stream 可靠队列实战
数据库·redis·缓存·stream·秒杀
小二·20 分钟前
AI Agent 数据库运维实战
运维·数据库·人工智能