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