仅当存储值较小/较大时才设置redis值

mdfafbf1  于 7个月前  发布在  Redis
关注(0)|答案(1)|浏览(59)

是否有一个内置的命令,它设置了一个存储键的值,只有当该值小于/大于某个参数?
或者我唯一的解决方案是对该高速缓存进行两次调用-一次用于检查值,另一次(可能的一次)用于存储新值?
谢谢

smdnsysy

smdnsysy1#

没有一个简单的命令来实现这一点,但是你可以尝试使用一个不需要多个客户端命令的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

字符串

相关问题