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

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

詳解redis腳本命令執(zhí)行問(wèn)題(redis.call)_Redis

作者:hjseo_seg ? 更新時(shí)間: 2022-05-26 編程語(yǔ)言

1、redis-cli命令行中執(zhí)行:

# 調(diào)用redis命令設(shè)置緩存
# 不傳參數(shù)
eval "return redis.call('set', 'name1', 'Tom')" 0
# 傳入1個(gè)值參數(shù)
eval "return redis.call('set', 'name2', ARGV[1])" 0 "Tom"
# 傳入1個(gè)鍵名參數(shù)和1個(gè)值參數(shù)
eval "return redis.call('set', KEYS[1], ARGV[1])" 1 "name3" "Tom"

2、linux命令行中執(zhí)行:

# 指定lua腳本路徑,后面可跟上參數(shù),與redis-cli中不同,此處不需要指定KEYS的數(shù)量,但是需要用英文逗號(hào)隔開(kāi)KEYS和ARGV參數(shù),逗號(hào)前后至少保留1個(gè)空格,否則報(bào)錯(cuò)
redis-cli -a password --eval ./sadd_script.lua subjects , math
redis-cli -a password --eval ./sadd_script.lua subjects , history

lua腳本中定義自己需要的業(yè)務(wù)代碼,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代碼中執(zhí)行:

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

欄目分類(lèi)
最近更新