搜尋

首頁  >  問答  >  主體

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

1.php中使用redis.eval操作lua腳本的時候,出錯,不知道哪裡問題,大家幫忙看一下謝謝

set 值進去了,使用eval調用lua去檢測如果這個my:lock的值是這個值就刪除,但這一步就是出錯,大神們幫忙看一下,謝謝

習慣沉默習慣沉默2779 天前704

全部回覆(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
  • 取消回覆