redis - 使用 Redis INCR 超过 Int64 最大值时会发生什么

标签 redis

很简单,我使用 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/

相关文章:

redis - 如何从 github 存储库构建 docker 镜像

ruby-on-rails - 如何运行 GenieACS?

redis - 由于配置文件错误,无法启动 Redis 服务器

docker - 无法从不同的docker容器连接到redis

redis - 如何在redis中存储排序的对象集?

c - 是否可以在 FUSE 文件系统中使用 Linux VFS 缓存?

symfony - 为 Redis 实例配置连接重试

algorithm - 如何实现 "trending counter"用滑动窗口来统计单词数?

redis - 我如何将redis中的数据结构设置为另一个数据结构的值

node.js - JS 闭包、Redis、循环、Async::空数组