开发者社区> 问答> 正文

[openresty]lua 读取redis 查询问题:报错

求助解决: openresty中lua+redis,关于lua查询redis方法的手册,我在用zrangebyscore时的分页,resty只支持字符串,有相关说明文档吗?

 local aSetId = instance:zrangebyscore('jsonjjmatch_ware_dict_usually', iTimeLine, iTime)

这样能获取整个,但是我需要 limit取,我看redis.lua中只能传字符串,

 local aSetId = instance:zrangebyscore('jsonjjmatch_ware_dict_usually', iTimeLine, iTime,{limit={0, 10}})

报错:2013/07/04 16:58:19 [error] 19015#0: *2160 lua handler aborted: runtime error: /usr/local/openresty/lualib/resty/redis.lua:196: bad argument #1 to 'len' (strin
      g expected, got table), client: 192.168.20.115, server: localhost, request: "GET /get_ware_dict?waretype=1&id=33&wareid= HTTP/1.1", host: "localhost:85"

展开
收起
kun坤 2020-06-06 23:11:04 1096 0
1 条回答
写回答
取消 提交回答
  • local aSetId = instance:zrangebyscore('jsonjjmatch_ware_dict_usually', iTimeLine, 'limit', '0', '10')

    这样写。最好能有相关文档

    ######
    Re: 关于zrangebyscore的limit问题 
    发件人:agentzh <agentzh@gmail.com>    
    时   间:2013年7月8日(星期一) 下午2:45 (UTC-07:00 休斯顿、底特律时间)
    收件人:
    小凡  <123811754@qq.com>
    抄   送:
    openresty  <openresty@googlegroups.com>
    Hello!

    On Thu, Jul 4, 2013 at 1:32 AM, 小凡 wrote:
    > 您好,最近学习如何使用openresty,
    > lua+redis
    > 用到这个函数 zrangebysocre,limit的参数怎么传》?
    >   --local aSetId =
    > instance:zrangebyscore('jsonjjmatch_ware_dict_usually',iTimeLine, iTime)
    >    local aSetId = instance:zrangebyscore('jsonjjmatch_ware_dict_usually',
    > iTimeLine, iTime, {limit={0,10}})
    >  2013/07/04 15:44:20 [error] 19003#0: *2004 lua handler aborted: runtime
    > error: /usr/local/openresty/lualib/resty/redis.lua:196: bad argument #1 to
    > 'len' (string expected, got table), client: 192.168.20.115, server:
    > localhost, request: "GET /get_ware_dict?waretype=1&id=33&wareid= HTTP/1.1",
    > host: "localhost:85"
    >
    > 只能传字符串?

    lua-resty-redis 的命令格式与 redis 标准命令完全相同:

         http://redis.io/commands/zrangebyscore

    比如 redis 官方文档中的这个例子

        ZRANGEBYSCORE zset (1 5

    在 Lua 中便等价于调用

        local res, err = instance:zrangebyscore("zset", "(1", "5")

    > 关于lua 访问redis的手册,或者文档能否提供一些资料?

    除了上面给出的 redis 命令的官方手册,还有就是 lua-resty-redis 自身的 README 文档:

         https://github.com/agentzh/lua-resty-redis#name

    同时抄送给 openresty 中文邮件列表: https://groups.google.com/group/openresty

    建议你加入此列表并总是在那里交流这样的问题,谢谢合作!

    Best regards,
    -agentzh
    ######openresty作者回复了我的邮件,非常感谢!!!###### 开发  OpenResty  lua模块是,不提示详细错误,请问怎样调试??######

    你是指用openresty时候,不报错?

    nginx配置日志报错等级,notice,或者更低点等级 debug

    error_log  logs/error.log  notice;

    2020-06-06 23:12:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis在唯品会的应用实践——架构演进与功能定制 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载