问题标签 [redisson]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何设置 Redisson 分布式锁的最大许可数
我有一个使用 AWS Lambda 运行的 Java 模块。这意味着可以同时运行模块的多个实例。
该模块用于访问某个 API 并从中检索数据。问题在于 API 使用了漏桶算法,该算法将 API 调用限制为 40 次,并且每 0.5 秒提供一次 API 调用。因此,我得到了一个Request limit exceeded
例外。
为了解决这个问题,我决定实施分布式锁并将redisson与 AWS ElastiCache(分布式 Redis 集群)一起使用。在检查了 redisson 的文档后,我得出结论,我应该使用PermitExpirableSemaphore
可以创建带有租约的锁(在我的情况下为 500 毫秒)。
问题是,我找不到将可用许可证限制为 40 个的方法。
你知道这样做的方法吗?
这是我的代码示例:
java - 如何使用 Redisson 在 Redis Cluster 中上传字节数组?
我还没有找到关于如何上传纯字节数组的解释。Redisson 有一个 RBitSet,但它管理的是位数组而不是字节。如何使用 Redisson 存储字节数组?
这是我的配置:
redisson - 如果我使用 redisson RMapCache 的应用程序宕机了一段时间,我可以恢复它吗?
我想使用 Redisson RMapCache 为地图中的各个条目设置到期时间。现在,如果我的应用程序在两者之间崩溃,然后出现,那么应该在停机时间内过期的密钥会在它出现后立即过期吗?或者对于这个用例,我是否需要查看 redisson 以外的其他内容?
java - Redisson 最佳实践配置与示例
我像下面这样配置Redisson客户端,作为Singelton的一部分,通过 redisson config 提高性能的最佳实践是什么?在 Redisson 地图上使对象无效的最佳方法是什么?
使用示例:
redisson - 与 Redis 一起使用的 Redisson 库抛出 RedisConnectionException
Redisson ( https://github.com/redisson/redisson ) 当我尝试更新一些 redisson 变量并且底层 redis 关闭时抛出 org.redisson.client.RedisConnectionException 。那么,为什么在代码中没有提到:对于所有方法都抛出 org.redisson.client.RedisConnectionException 之类的东西?
我想使用这个库,因为它可以让我为 hashmap 的各个条目设置超时。我将在我的生产应用程序中使用它。使用它安全吗?
java - 在redisson中设置一些存储桶之前我需要锁定吗?
如果我想在 Redisson 中设置一个存储桶,我是否需要通过合并来防止竞争条件Redisson.getLock()
?还是RBucket.set()
在内部这样做?
一般来说,除了应用程序要求之外,在向 Redisson 设置/获取某些东西之前,我是否需要用锁包围一个块?
events - 将 Redis 事件连接到 Lua 脚本执行和并发问题
我已经对使用 Redisson 库构建的键值对或数据结构进行了分组。设计是任何一组值的值的变化都应该作为事件发送到订阅 Lua 脚本。然后这些脚本进行计算并更新另一个组的键值对。这个过程是作为一个链来实现的,一旦 Lua 脚本更新了一个键值对,它就会生成一个事件,另一个 Lua 脚本会根据某些参数执行类似于第一个 Lua 脚本的工作。
问题一:如何连接Lua脚本和事件?
问题 2:事件是流水线的,但我的 Lua 脚本可能必须等待网络 IO。在这种情况下,我假设处理了下一个事件并执行了订阅脚本。这对我来说是个问题,因为第一个脚本还没有完成更新它需要的键值对,而第二个脚本正在继续它的工作。这会给我带来错误。有没有办法克服这个问题?
问题 3:如何从 Redisson 数据结构中发出事件,我需要 Lua 脚本来理解该数据结构的结构。如何?
java - 使用 redisson 的管道
我想在我的应用程序中使用 redisson 实现管道。为此,我已经导入了 redisson 3.2.2 jar 。我已经尝试了下面的代码。
但是 redisson jar 中没有 .createBatch() 的方法。可能的解决方案是什么。我应该尝试另一个 redisson 版本还是有其他方法可以使用 redisson 实现管道?
java - 可以使用 Redisson lib 中的 ScoredSortedSet 在具有大量写入的环境中获取实际项目排名吗?
我想将 Redis 与 Java Redisson 库一起使用。我的任务是根据某些项目的字段按排序顺序存储项目。主要有以下三个限制:
- 项目的排序字段可以经常更新。整个集合每秒最多可能有 25k 次更新。
- 我需要非常快(最多 5 毫秒)获得我收藏中每个项目的实际排名。
- 集合大小可能高达 2500 万个项目。
是否可以使用具有此类约束的 Redisson ScoredSortedSet.rank 方法,或者它不适合并且有更好的解决方案?