日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

詳解redis腳本命令執行問題(redis.call)_Redis

作者:hjseo_seg ? 更新時間: 2022-05-26 編程語言

1、redis-cli命令行中執行:

# 調用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"

2、linux命令行中執行:

# 指定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

lua腳本中定義自己需要的業務代碼,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

3、php代碼中執行:

connect('192.168.1.201', 6379);
$redis->auth('123456');
$script = <<eval($script, [$key1, $value1], 1);
var_dump($res);

原文鏈接:https://blog.csdn.net/hjseo_seg/article/details/123681264

欄目分類
最近更新