Eli*_*erg 5 c# redis stackexchange.redis
是否有一个内置命令可以设置存储键的值,仅当该值小于/大于某个参数时?
或者我唯一的解决方案是对缓存进行两次调用 - 一个用于检查值,另一个(可能的)用于存储新值?
谢谢
没有一个简单的命令可以实现此目的,但您可以尝试使用不需要多个客户端命令的 Lua 脚本,例如:
local currentValue = tonumber(redis.call('GET', KEYS[1]))
if not currentValue or (ARGV[1] == 'smaller' and tonumber(ARGV[2]) < currentValue) or (ARGV[1] == 'larger' and tonumber(ARGV[2]) > currentValue) then
redis.call('SET', KEYS[1], ARGV[2])
return true
else
return false
end
Run Code Online (Sandbox Code Playgroud)