찾다

 >  Q&A  >  본문

PHP의 Redis 작업은 lua를 사용하지만 일관되게 실행될 수 없습니다. 모두가 살펴보도록 도와주세요.

redis.eval을 사용하여 1.php에서 Lua 스크립트를 작동할 때 오류가 발생했습니다. 문제가 무엇인지 모르겠습니다.

설정된 값이 입력되었습니다. eval을 사용하여 lua를 호출하여 my:lock의 값이 이 값인지 감지하고 삭제하지만 이 단계가 잘못되었습니다. 살펴보도록 도와주실 수 있나요? 감사합니다.

習慣沉默習慣沉默2778일 전700

모든 응답(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
  • 취소회신하다