当 Int64 最大值与 Redis INCR 一起超出时会发生什么



很简单,我正在使用 Redis INCR 来确保计数器的原子增量,计数器的起始值不确定小于 Int64.MaxValue。

Redis 在达到 Int64.MaxValue 时会重置该值还是引发错误?

阅读了文档,但它没有说明发生了什么,我确实想在滚动时保持原子性质

它会抛出一个错误。我为您的用例做了一个小实验

127.0.0.1:6379> set value 9223372036854775807 (2 power 63 -1)
OK
127.0.0.1:6379> incr value
(error) ERR increment or decrement would overflow
127.0.0.1:6379> 

Redis 最多可以容纳 2 次方 63。 如果超过该限制,则会引发错误。可能是"超出范围"错误或"溢出"错误

出现错误时,您可以捕获该异常并重置应用程序逻辑中的值。

最新更新