Lors de l'utilisation de redis.eval pour exécuter le script Lua dans 1.php, une erreur s'est produite. Je ne sais pas quel est le problème. Veuillez m'aider. Merci
La valeur définie est entrée, utilisez eval pour appeler lua pour détecter si la valeur de my:lock est cette valeur, supprimez-la, mais cette étape est erronée, pouvez-vous m'aider à y jeter un œil, merci
Je ne connais pas grand chose en PHP, mais je connais Redis, je suppose qu'il y a quelque chose qui ne va pas ici.
Je ne sais pas si la bibliothèque redis en php a modifié cet ordre. Si c'est faux, veuillez ignorer cette réponse, sinon vous pouvez essayer ce qui suit. 🎜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])
Parce que les paramètres de la commande eval par défaut de redis sont : le script lua, le nombre de paires clé-valeur, tous les noms de clés et toutes les valeurs.eval($script, 1, $a)
🎜De plus, $a ici est un tableau. En fait, il devrait être divisé pour transmettre la valeur, n'est-ce pas ? 🎜eval(#script, 1, $a[0], $a[1])
🎜Ce qui m'intéresse, c'est pourquoi dois-je ajuster Lua en PHP pour implémenter cette logique ? Si vous utilisez PHP pour lire la valeur de cette clé depuis Redis et la comparer, pouvez-vous réaliser la logique que vous souhaitez ?