腾讯云分布式缓存数据库 scripting and functions 族

Scripting and Functions 族命令用于在服务端执行 Lua 脚本和管理可复用函数库,适用于需要多步骤原子操作、减少网络往返、或实现复杂业务逻辑下沉到数据层的场景。其核心命令按功能可分为以下三类。

相关产品
腾讯云分布式缓存数据库(兼容 Redis) 产品页,含版本规格、价格与购买入口。

一、命令介绍

·Lua 脚本执行

·EVAL / EVALSHA:在服务端原子性执行一段 Lua 脚本(所有操作在同一事件循环中完成,不会被其他命令打断)。EVAL 直接传入脚本源码,EVALSHA 通过 SHA1 哈希调用已缓存的脚本。

·EVAL_RO / EVALSHA_RO(Redis 7.0+):只读副本可执行的版本,用于从节点上的只读脚本操作。

·脚本缓存管理

·SCRIPT LOAD:将脚本加载到服务端缓存并返回 SHA1 哈希。

·SCRIPT EXISTS:检查脚本是否存在于缓存中。

·SCRIPT FLUSH:清空所有脚本缓存。

·SCRIPT KILL:终止正在执行的长时间运行脚本。

·Functions 函数库(Redis 7.0+ / Valkey 8.0+)

Functions 机制将脚本升级为命名函数库,支持持久化存储与主从复制,提供更好的可维护性和版本管理能力。

·FUNCTION LOAD / FUNCTION DELETE / FUNCTION FLUSH:加载、删除或清空函数库。

·FUNCTION LIST / FUNCTION DUMP / FUNCTION RESTORE:列出、导出或导入函数库。

·FUNCTION STATS:查看函数执行统计。

·FCALL / FCALL_RO:调用已注册的命名函数(RO 版本可在只读副本执行)。

更多信息请参见 Valkey 产品文档:Scripting 命令组。

二、命令支持概览

·基础命令:eval、evalsha、script exists、script flush、script load、script kill,Redis 2.8标准架构及4.0、5.0、6.2、7.0版本、Valkey 8.0、9.0的标准架构与集群架构均支持。

·7.0+ 新增命令:eval_ro、evalsha_ro、function delete、function dump、function flush、function kill、function list、function load、function restore、function stats、fcall、fcall_ro,仅 Redis 7.0 版本及 Valkey 8.0、9.0 版本支持。其中 eval_ro、evalsha_ro 为只读副本执行版本,fcall、fcall_ro 用于调用自定义函数。

·全局不支持:script debug 在所有版本与架构中均不支持。

·跨 Slot 限制:集群架构下,eval、evalsha、script exists 不支持跨 Slot 操作,操作的 Key 必须落在同一个 Slot 上。

三、命令兼容性矩阵

Scripting and Functions 族命令在各版本与架构下的支持情况如下表所示(✓ 表示支持,✗ 表示不支持,— 表示该命令不存在跨 Slot 访问场景)。

注意:说明:

注意:eval_ro 与 evalsha_ro 为只读命令,可在只读副本中执行 Lua 脚本;function 系列命令用于管理 Redis 自定义函数库。以上命令仅 Redis 7.0 及 Valkey 8.0、9.0 支持。

命令 Valkey 9.0标准架构 Valkey 9.0集群架构 Redis 7.0/Valkey 8.0标准架构 Redis 7.0/Valkey 8.0集群架构 Redis 6.2标准架构 Redis 6.2集群架构 Redis 5.0标准架构 Redis 5.0集群架构 Redis 4.0标准架构 Redis 4.0集群架构 Redis 2.8标准架构 集群架构跨 Slot 支持
eval ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗
eval_ro ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
evalsha ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗
evalsha_ro ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
script debug ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
script exists ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗
script flush ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ —
script load ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ —
script kill ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ —
function delete ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
function kill ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
function dump ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
function flush ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
function list ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
function load ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
function restore ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
function status ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
fcall ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
fcall_ro ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ ✗ ✗ —
赞 (0)
上一篇 4天前
下一篇 4天前