很简单,我使用 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 次方。如果超过该限制,则会抛出错误。可能是“超出范围”错误或“溢出”错误
一旦出错,您可以捕获该异常并重置应用程序逻辑中的值。
关于redis - 使用 Redis INCR 超过 Int64 最大值时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36861472/