検索

ホームページ  >  に質問  >  本文

phpでのRedis操作はluaを使用していますが、安定して実行できません皆さんも参考にしてください。

1.php で redis.eval を使用して Lua スクリプトを操作すると、エラーが発生しました。助けてください。

設定値は入っています。eval を使用して lua を呼び出し、my:lock の値がこの値であるかどうかを検出し、削除します。ただし、この手順は間違っています。確認するのを手伝っていただけますか。ありがとう

習慣沉默習慣沉默2779日前705

全員に返信(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 から読み取って比較すると、必要なロジックを実現できますか?

    返事
    0
  • キャンセル返事