1.php で redis.eval を使用して Lua スクリプトを操作すると、エラーが発生しました。助けてください。
設定値は入っています。eval を使用して lua を呼び出し、my:lock の値がこの値であるかどうかを検出し、削除します。ただし、この手順は間違っています。確認するのを手伝っていただけますか。ありがとう
私は 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 スクリプト、キーと値のペアの数、すべてのキー名、およびすべての値であるためです。
eval($script, $a, 1)
eval($script, 1, $a)
eval(#script, 1, $a[0], $a[1])
私が知りたいのは、なぜこのロジックを実装するために PHP で Lua を調整する必要があるのかということです。 PHP を使用して、このキーの値を Redis から読み取って比較すると、必要なロジックを実現できますか?
私は PHP についてはあまり知りませんが、redis についてはよく知っています。ここに何か問題があると思います。
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 スクリプト、キーと値のペアの数、すべてのキー名、およびすべての値であるためです。eval($script, 1, $a)
🎜 なお、ここの$aは実際には配列なので分割して値を渡す必要がありますよね。 🎜eval(#script, 1, $a[0], $a[1])
🎜私が知りたいのは、なぜこのロジックを実装するために PHP で Lua を調整する必要があるのかということです。 PHP を使用して、このキーの値を Redis から読み取って比較すると、必要なロジックを実現できますか?