支持的情况:
高性能处理与CAS命令: 云数据库Redis实例支持Lua相关命令,利用Lua脚本可以高效处理CAS(Check-And-Set)命令,显著提升Redis的性能。
提升操作模式: Lua脚本使得实现以往难以实现或效率低下的模式变得简单
限制情况:
集群环境限制:
小版本兼容性: 确保Redis Cluster的小版本满足要求,避免遇到 ERR command eval not support for normal user 报错,需升级小版本后重试。
1
2
Keys在同一Slot上: 所有Key必须位于同一个哈希槽(Hash Slot)上,否则会报错 -ERR eval/evalsha command keys must be in same slot。可使用 CLUSTER KEYSLOT 命令确认。
1
2
脚本加载不全局: 在单个节点执行 SCRIPT LOAD 不保证脚本会被其他节点存储。
1
2
不支持功能:
发布订阅命令: 不支持包括 PSUBSCRIBE, PUBSUB, PUBLISH, PUNSUBSCRIBE, SUBSCRIBE, UNSUBSCRIBE 在内的发布订阅命令。
1
2
UNPACK函数: 不被支持。
1
2
特定限制与绕过方法:
Tair集群: Tair集群版有额外限制,可通过设置 script_check_enable 为 0 绕过部分检查,但这不被推荐且仍需遵循KEYS使用规则。
Redis嵌套调用: 不支持Redis命令的嵌套调用,应使用局部变量方式代替。
Key参数必需: 脚本执行时必须带有Key参数,否则会报错 -ERR for redis cluster, eval/evalsha number of keys can't be negative or zero。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。