redis - 在 Redis 中检查并增加一个计数器
问题描述
我有一项手术需要完成 N 次,仅此而已。该操作由接收请求的许多可能并行的进程完成。进程必须检查计数器是否超过 N,如果没有,则增加计数器并执行操作。我想我可以为此使用 Redis 计数器。
但是,如果我只是GET
然后INCR
一个值,我可能会遇到竞争条件,这将导致操作完成 N 次以上。如何test-and-incr
对 Redis 执行某种操作?
我知道我可以使用WATCH
,但这是一个乐观锁。我预计每秒会有很多碰撞。这会导致很多失败。也许我可以简单地包装GET
一些INCR
外部互斥锁。但我不确定它是否足以满足性能要求。
解决方案
推荐阅读
- swift - 如何转换 LazyFilterSequence
> 输入结果 - android - 无法应用插件 [id 'com.android.internal.version-check']
- mongodb - 在 mongoose.js 中,我们可以搜索具有多个搜索参数的模型吗?
- r - 我可以将我的 R 输出 (.jpeg) 保存到 FTP 服务器吗?
- rest - 使用 Axios Assyst REST API 发送文件
- react-native - 即使应用程序在 React Native 中关闭,我如何执行任务
- flutter - 如何使用 chart_flutter 库创建自定义 LegendContentBuilder 以根据选择显示和隐藏系列?
- android - 使用第三方应用程序更改文件路径
- c++ - OpenGL将纹理四边形渲染为(0,0)处的单个像素?
- spring-boot - 完全不可变容器的好处