2
在redis中是否有一個命令,如果密鑰不存在,我可以爲其設置默認值?Redis獲取密鑰或設置爲默認值(如果不存在)
例如,如果get hello
返回(nil)
我想將其默認爲world
。但是如果密鑰hello
已經存在,我想返回這個值。
在redis中是否有一個命令,如果密鑰不存在,我可以爲其設置默認值?Redis獲取密鑰或設置爲默認值(如果不存在)
例如,如果get hello
返回(nil)
我想將其默認爲world
。但是如果密鑰hello
已經存在,我想返回這個值。
你可以用一個Lua腳本做到這一點:
local value = redis.call("GET", KEYS[1])
if (not value) then
redis.call("SET", KEYS[1], ARGV[1])
return ARGV[1]
end
return value
保存爲script.lua
,並調用它像這樣:
$ redis-cli eval "$(cat script.lua") 1 myKey defaultValue