यह उत्तर वह नहीं हो सकता है जिसकी आप अपेक्षा करते हैं। लेकिन मेरा कहना है कि लुआ स्क्रिप्टिंग क्रिस्टल स्पष्ट समाधान है।
-- range-incrby.lua key , increment
local key = KEYS[1]
local increment = ARGV[1]
local cnt = redis.call('get', key) or 0
cnt = cnt + increment
if (cnt >= 0 and cnt <= 100) then
redis.call('set', key, cnt)
return cnt
end
साथ ही, यदि श्रेणी [0, 2^N - 1]
. है , तो आप BITFIELD
. का उपयोग कर सकते हैं समस्या को हल करने के लिए अतिप्रवाह नियंत्रण के साथ आदेश।
BITFIELD key OVERFLOW FAIL INCRBY uN 0 increment
हालांकि, ऐसा लगता है कि आपका मामला नहीं है।