搜索

首页  >  问答  >  正文

php中redis操作,使用lua,但一致执行不了,帮忙大家看一下

1.php中使用redis.eval操作lua脚本的时候,出错,不知道哪里问题,大家帮忙看一下谢谢

set 值进去了,使用eval调用lua去检测如果这个my:lock的值是这个值就删除,但这一步就是出错,大神们帮忙看一下,谢谢

習慣沉默習慣沉默2778 天前701

全部回复(2)我来回复

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:07:41

    php不太懂,但redis还是比较熟的,我猜是这里出的错。
    eval($script, $a, 1)eval($script, $a, 1)
    因为redis默认eval命令的参数依次是:lua脚本,键值对个数,所有的键名,所有的值。
    我不知道php里的redis库有没有修改这个顺序,如果不对请忽略这个答案吧,否则你可以试试下面这样。
    eval($script, 1, $a)
    另外,这里$a是个数组,其实应该拆开来传值吧?
    eval(#script, 1, $a[0], $a[1])因为redis默认eval命令的参数依次是:lua脚本,键值对个数,所有的键名,所有的值。

    我不知道php里的redis库有没有修改这个顺序,如果不对请忽略这个答案吧,否则你可以试试下面这样。🎜eval($script, 1, $a)🎜另外,这里$a是个数组,其实应该拆开来传值吧?🎜eval(#script, 1, $a[0], $a[1])🎜

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:07:41

    好奇的是为什么需要在php中去调lua来实现这个逻辑呢?你用PHP从redis中读取这个key的值比较下不就可以实现你想要的逻辑吗。

    回复
    0
  • 取消回复