Redis 脚本 命令

目录

  • [1.Redis Script kill 命令 - 杀死当前正在运行的 Lua 脚本。](#1.Redis Script kill 命令 - 杀死当前正在运行的 Lua 脚本。)
    • 简介
    • 语法
      • [可用版本: >= 2.6.0](#可用版本: >= 2.6.0)
      • [返回值: 总是返回 OK](#返回值: 总是返回 OK)
    • 示例
  • [2.Redis Script Load 命令 - 将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。](#2.Redis Script Load 命令 - 将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。)
    • 简介
    • 语法
      • [可用版本: >= 2.6.0](#可用版本: >= 2.6.0)
      • [返回值: 给定脚本的 SHA1 校验和](#返回值: 给定脚本的 SHA1 校验和)
    • 示例
  • [3.Redis Eval 命令 - 执行 Lua 脚本。](#3.Redis Eval 命令 - 执行 Lua 脚本。)
    • 简介
    • 语法
      • [可用版本: >= 2.6.0](#可用版本: >= 2.6.0)
      • [返回值: Redis 脚本](#返回值: Redis 脚本)
    • 示例
  • [4.Redis Evalsha 命令 - 执行 Lua 脚本。](#4.Redis Evalsha 命令 - 执行 Lua 脚本。)
    • 简介
    • 语法
      • [可用版本: >= 2.6.0](#可用版本: >= 2.6.0)
      • [返回值: Redis 脚本](#返回值: Redis 脚本)
    • 示例
  • [5.Redis Script Exists 命令 - 查看指定的脚本是否已经被保存在缓存当中。](#5.Redis Script Exists 命令 - 查看指定的脚本是否已经被保存在缓存当中。)
    • 简介
    • 语法
      • [可用版本: >= 2.6.0](#可用版本: >= 2.6.0)
      • [返回值: 一个列表,包含 0 和 1 ,前者表示脚本不存在于缓存,后者表示脚本已经在缓存里面了。](#返回值: 一个列表,包含 0 和 1 ,前者表示脚本不存在于缓存,后者表示脚本已经在缓存里面了。)
    • 示例
  • [6.Redis Script Flush 命令 - 从脚本缓存中移除所有脚本。](#6.Redis Script Flush 命令 - 从脚本缓存中移除所有脚本。)
    • 简介
    • 语法
      • [可用版本: >= 2.6.0](#可用版本: >= 2.6.0)
      • [返回值: 总是返回 OK](#返回值: 总是返回 OK)
    • 示例
  • 总结

1.Redis Script kill 命令 - 杀死当前正在运行的 Lua 脚本。

简介

复制代码
SCRIPT KILL 执行之后,当前正在运行的脚本会被杀死,执行这个脚本的客户端会从 EVAL 命令的阻塞当中退出,并收到一个错误作为返回值。这个命令主要用于终止运行时间过长的脚本,比如一个因为 BUG 而发生无限循环的脚本。Redis Script kill 命令用于杀死当前正在运行的 Lua 脚本,当且仅当这个脚本没有执行过任何写操作时,这个命令才生效。Redis 脚本

语法

复制代码
redis 127.0.0.1:6379> SCRIPT KILL

可用版本: >= 2.6.0

返回值: 总是返回 OK

示例

shell 复制代码
redis 127.0.0.1:6379> SCRIPT KILL
OK

2.Redis Script Load 命令 - 将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。

简介

复制代码
关于使用 Redis 对 Lua 脚本进行求值的更多信息,请参见 EVAL 命令。脚本可以在缓存中保留无限长的时间,直到执行 SCRIPT FLUSH 为止。在脚本被加入到缓存之后,通过 EVALSHA 命令,可以使用脚本的 SHA1 校验和来调用这个脚本。如果给定的脚本已经在缓存里面了,那么不执行任何操作。EVAL 命令也会将脚本添加到脚本缓存中,但是它会立即对输入的脚本进行求值。Redis Script Load 命令用于将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。Redis 脚本

语法

复制代码
redis 127.0.0.1:6379> SCRIPT LOAD script

可用版本: >= 2.6.0

返回值: 给定脚本的 SHA1 校验和

示例

shell 复制代码
redis 127.0.0.1:6379> SCRIPT LOAD "return 1"
"e0e1f9fabfc9d4800c877a703b823ac0578ff8db"

3.Redis Eval 命令 - 执行 Lua 脚本。

简介

复制代码
Redis Eval 命令使用 Lua 解释器执行脚本。Redis 脚本

语法

复制代码
redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]

可用版本: >= 2.6.0

返回值: Redis 脚本

示例

shell 复制代码
redis 127.0.0.1:6379> eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"

4.Redis Evalsha 命令 - 执行 Lua 脚本。

简介

复制代码
Redis Evalsha 命令根据给定的 sha1 校验码,执行缓存在服务器中的脚本。Redis 脚本

语法

复制代码
redis 127.0.0.1:6379> EVALSHA sha1 numkeys key [key ...] arg [arg ...]

可用版本: >= 2.6.0

返回值: Redis 脚本

示例

shell 复制代码
redis 127.0.0.1:6379> SCRIPT LOAD "return 'hello moto'"
"232fd51614574cf0867b83d384a5e898cfd24e5a"

redis 127.0.0.1:6379> EVALSHA "232fd51614574cf0867b83d384a5e898cfd24e5a" 0
"hello moto"

5.Redis Script Exists 命令 - 查看指定的脚本是否已经被保存在缓存当中。

简介

复制代码
Redis Script Exists 命令用于校验指定的脚本是否已经被保存在缓存当中。Redis 脚本

语法

复制代码
redis 127.0.0.1:6379> EVALSHA sha1 numkeys key [key ...] arg [arg ...]

可用版本: >= 2.6.0

返回值: 一个列表,包含 0 和 1 ,前者表示脚本不存在于缓存,后者表示脚本已经在缓存里面了。

示例

shell 复制代码
redis 127.0.0.1:6379> SCRIPT LOAD "return 'hello moto'"    # 载入一个脚本
"232fd51614574cf0867b83d384a5e898cfd24e5a"

redis 127.0.0.1:6379> SCRIPT EXISTS 232fd51614574cf0867b83d384a5e898cfd24e5a
1) (integer) 1

redis 127.0.0.1:6379> SCRIPT FLUSH     # 清空缓存
OK

redis 127.0.0.1:6379> SCRIPT EXISTS 232fd51614574cf0867b83d384a5e898cfd24e5a
1) (integer) 0

6.Redis Script Flush 命令 - 从脚本缓存中移除所有脚本。

简介

复制代码
Redis Script Flush 命令用于清除所有 Lua 脚本缓存。Redis 脚本

语法

复制代码
redis 127.0.0.1:6379> SCRIPT FLUSH

可用版本: >= 2.6.0

返回值: 总是返回 OK

示例

shell 复制代码
redis 127.0.0.1:6379> SCRIPT FLUSH
OK

总结

相关推荐
蚰蜒螟18 分钟前
Spring 和 Lettuce 源码分析 Redis 节点状态检查与失败重连的工作原理
java·redis·spring
duration~38 分钟前
SpringAI集成MCP
人工智能·后端·spring·ai
Runing_WoNiu1 小时前
Redis主从架构、哨兵模式及集群比较
数据库·redis·架构
悟纤1 小时前
Spring Boot 实用小技巧:多级缓存(Caffeine + Redis)- 第545篇
spring boot·后端·spring
励志成为糕手1 小时前
企业级Spring事务管理:从单体应用到微服务分布式事务完整方案
分布式·spring·微服务·隔离级别·事务管理
Dajiaonew7 小时前
Spring AI RAG 检索增强 应用
java·人工智能·spring·ai·langchain
Java小白程序员17 小时前
Spring Framework :IoC 容器的原理与实践
java·后端·spring
小李是个程序19 小时前
登录与登录校验:Web安全核心解析
java·spring·web安全·jwt·cookie
ciku20 小时前
Spring AI 集成阿里云百炼平台
人工智能·spring·阿里云
克拉克盖博1 天前
chapter03_Bean的实例化与策略模式
java·spring·策略模式