Heim > Datenbank > Redis > Beispielanalyse von Problemen bei der Ausführung von Redis-Skriptbefehlen

Beispielanalyse von Problemen bei der Ausführung von Redis-Skriptbefehlen

WBOY
Freigeben: 2023-05-26 15:28:06
nach vorne
1508 Leute haben es durchsucht

1. In der Redis-CLI-Befehlszeile ausführen:

# 调用redis命令设置缓存
# 不传参数
eval "return redis.call('set', 'name1', 'Tom')" 0
# 传入1个值参数
eval "return redis.call('set', 'name2', ARGV[1])" 0 "Tom"
# 传入1个键名参数和1个值参数
eval "return redis.call('set', KEYS[1], ARGV[1])" 1 "name3" "Tom"
Nach dem Login kopieren

2. In der Linux-Befehlszeile ausführen:

# 指定lua脚本路径,后面可跟上参数,与redis-cli中不同,此处不需要指定KEYS的数量,但是需要用英文逗号隔开KEYS和ARGV参数,逗号前后至少保留1个空格,否则报错
redis-cli -a password --eval ./sadd_script.lua subjects , math
redis-cli -a password --eval ./sadd_script.lua subjects , history
Nach dem Login kopieren
#

Beispielanalyse von Problemen bei der Ausführung von Redis-Skriptbefehlen#🎜 🎜#Lua-Skript definiert den Geschäftscode, den Sie benötigen, Demo:

local setName = KEYS[1]
local setValue = ARGV[1]
if string.len(setName) > 0 and string.len(setValue) > 0
then
    return redis.call('sadd', setName, setValue)
else
    return 0
end
Nach dem Login kopieren

3, Ausführung im PHP-Code:

<?php
$redis = new Redis();
$redis->connect(&#39;192.168.1.201&#39;, 6379);
$redis->auth(&#39;123456&#39;);
$script = <<<EOF
    return redis.call(&#39;lpush&#39;, KEYS[1], ARGV[1])
EOF;
$key1 = &#39;goods_list&#39;;
$value1 = mt_rand(10000, 99999);
//eval($script, $args = array(), $numKeys = 0),numKeys声明args参数中KEYS数量,剩下的则都为ARGV参数
$res = $redis->eval($script, [$key1, $value1], 1);
var_dump($res);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBeispielanalyse von Problemen bei der Ausführung von Redis-Skriptbefehlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage