很简单,我使用Redis INCR来确保计数器的原子增量,计数器的起始值小于Int64.MaxValue。
当Redis达到Int64.MaxValue或抛出错误时,Redis会重置该值吗?
我阅读了文档,但没有说明会发生什么,我确实希望在翻转时保持原子性
答案 0 :(得分:17)
会抛出错误。我为你的用例做了一个小实验
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.如果超过该限制则会抛出错误。它可能是"超出范围"错误或"溢出"错误
出错时,您可以捕获该异常并重置应用程序逻辑中的值。