• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

阿里云Redis lua命令支持及相关限制说明

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Lua 脚本功能是 Reids的最大亮点, 通过内嵌对 Lua 环境的支持, Redis 解决了长久以来不能高效地处理 CAS (check-and-set)命令的缺点, 并且可以通过组合使用多个命令, 轻松实现以前很难实现或者不能高效实现的模式。
阿里云Redis主从版本、集群版本、读写分离版本都支持Lua相关命令。用户如果发现无法执行Eval相关命令,比如报"ERR command eval not support for normal user"的时候可以再控制台进行一个小版本升级完成,升级过程中有闪断和只读影响,请在业务低峰期进行操作。

集群版本限制

默认阿里云Redis会对lua脚本做一定限制,目的是为了保证脚本里面的所有操作都在相同slot进行,如果用户能够在代码确保所有操作都在相同slot而又想打破Redis集群的lua限制的话可以通过控制台修改script_check_enable参数为0,则后端不会对脚本进行校验。

云Redis集群对lua脚本限制如下:

  • 所有key都应该由 KEYS 数组来传递,redis.call/pcall 中调用的redis命令,key的位置必须是KEYS array(不能使用Lua变量替换KEYS),否则直接返回错误信息,"-ERR bad lua script for redis cluster, all the keys that the script uses should be passed using the KEYS arrayrn"。
  • 所有key必须在1个slot上,否则返回错误信息,"-ERR eval/evalsha command keys must be in same slotrn"。
  • 调用必须要带有key,否则直接返回错误信息, "-ERR for redis cluster, eval/evalsha number of keys can't be negative or zerorn"。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Error: /usr/local/share/lua/5.1/kong/cmd/start.lua:57: nginx: [emerg] bind() to ...发布时间:2022-07-22
下一篇:
cocos创建lua工程发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap