问题标签 [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.

0 投票
0 回答
597 浏览

redis - 调试 Redisson 订阅超时

我正在使用 Redisson 3.8.2 连接到复制的 AWS elasticache,经过一段时间的操作后,我的客户端在尝试订阅主题时经常遇到超时异常。

我检查了 AWS 上的负载和我的客户端上的负载,AWS 几乎没有超过空闲状态,并且客户端的订阅数量远远少于它应该能够支持的数量(订阅者池 * 每个连接的订阅)。

我尝试调整订阅连接池和每个连接设置的订阅者,但仍然遇到问题。

异常抛出高级别,超时等待 Redisson 承诺同步,查看承诺背后的详细代码,发生了很多事情,涉及 java 代码中至少 2 个锁和异步期货订阅和附加侦听器.

有没有一种方法可以从 Redisson 获得更多关于它在哪里超时/它正在到达什么阶段以及它什么时候无法看到连接池和连接条目的状态的调试信息?

0 投票
1 回答
533 浏览

java - Redis fetch 使用 redisson 需要时间

我有一个场景,应用程序需要每个请求从 redis 获取大约 80 次操作。当我在该应用程序上遇到 1 个请求时,它会在不到 1 秒的时间内给出响应,但是当请求大小增加到 100 时,redissonClient 开始表现缓慢,大约需要 13 秒才能获取 250 条记录。

我是 redis 新手,不确定这是否是默认设置。虽然我在一些文章中发现,redis 可以在 1 秒内在 1 个节点上处理数百万次操作。我们的 redis 服务器目前在 1 个节点上运行。

下面是redis的配置:

以下是我在启动时实例化 redisson 客户端的方式:

以下是我获取记录的方式:

我怀疑我错误地配置了 redis 客户端,但无法弄清楚那是什么。

非常感谢任何帮助/灯光。

谢谢

0 投票
0 回答
704 浏览

java - Kubernetes Java Exec没有为输入提供任何输出

下面是我的代码,我试图通过 Redis 主题从另一个使用 Redisson 库的应用程序向 Process OutputStream 提供输入,但我无法在控制台上看到任何输出。

是因为来自 Redisson 库的消息被拉到不同的线程中,而 exec 进程在不同的线程中运行,还是因为该进程无法获取 System.in/System.out 以外的其他输出。

如您所见,我正在尝试通过 redis 主题发布命令,因为我的另一个应用程序负责将命令发送到该应用程序,该应用程序已使用 pod 启动了 exec 进程。

这两个应用程序都使用 Spring Boot 2.0。我被困在这里很长时间了,感谢您的帮助。

0 投票
2 回答
402 浏览

java - ClassNotFoundException:没有找到与 org.redisson.RedissonMap 的类类型与 org.redisson.codec.JsonJacksonCodec 的编解码器类型匹配的 RObject

在解决 LiveObject 引发异常时遇到问题,我尝试根据 Redisson 测试用例重现有问题的行为。

我重现问题的最小代码是这个测试用例(主要来自 RedissonLiveObjectServiceTest.java):

将 RedissonMap 对象转换回 RObject 失败...
难道不应该尝试将 value 属性转换为标准 java.util.Map 吗?

这看起来像 API 的相当简单的用法,我在这里遗漏了一些要点吗?

这是我为 JsonJackson 设置的 ObjectMapper:

0 投票
1 回答
875 浏览

java - Redisson 客户端 setnx

我正在使用 Redisson 作为 java redis 库,redisson 中针对 setnx 的相应函数是什么(有条件地设置键的值,如果设置了值,则将结果设为 1)。我在集群模式(分片集群)中使用 redis。

谢谢

0 投票
3 回答
3169 浏览

java - Spring Redisson 哨兵错误 - 至少需要两个哨兵

我正在为 Redis 使用哨兵模式。我正在使用 Redisson 客户端版本 3.9.1

Sentinel 使用 Redisson 的配置:

我正在运行两台哨兵服务器和一台没有从服务器的 Redis 主服务器。这只是我本地环境的设置。
一些命令的输出:

每当我运行我的 Spring Boot 应用程序时,我都会收到以下错误:

如何解决此错误?

PS:我也尝试过主从配置,一个哨兵连接到主机,另一个连接到从站,但错误仍然存​​在。我已经尝试在具有不同私有 IP 的不同本地机器上运行哨兵,但错误仍然相同。尝试使用 3 个哨兵服务器,没有任何好处。

0 投票
1 回答
2139 浏览

java - 如何使用redisson客户端获取redis集群中键的值

我正在尝试使用 redisson 客户端获取 redis 集群中键的值。

我从这个命令结果中得到了db0作为键空间

INFO 键空间

db0:keys=1,expires=0,avg_ttl=0

但结果是:

键值为:空

0 投票
1 回答
957 浏览

java - redisson java客户端可以检测到集群拓扑中失败的主副本对的重启吗?

我的 Spring 启动应用程序使用 redisson 3.3.0 来访问具有以下 YML 配置的 redis 集群拓扑:

redis 集群设置为默认值(3 个节点,每个节点 1 个副本)。

我停止包含相同插槽(主副本对)的 2 个节点。然后,当我的应用程序尝试从这些插槽中读取密钥时,正如预期的那样,我得到了这个异常:

我想这是正确的,因为在使用 CLUSTER NODES 命令检查我的 redis 节点后,我可以看到 2 个节点已关闭,并且它们的插槽从集群中丢失。

问题是,当我再次启动节点时,我使用 CLUSTER INFO & CLUSTER NODES 检查集群是否已恢复。然而,当我的应用程序尝试再次从集群中读取数据时,我得到了这个 redisson 异常:

每次我的应用程序尝试从/向这些特定插槽(即特定的主副本对)读取或写入时,我都会不断地得到它,尽管 redis 集群是好的。

Redisson 似乎无法检索特定主副本对的正确状态。

这可能是配置问题,还是默认行为?

0 投票
2 回答
2545 浏览

redis - Redisson本地缓存使用

关于 reddison 客户端,我有两个问题:

  1. redisson是否支持本地缓存与远程redis缓存自动同步(远程缓存数据发生变化或失效时)?

  2. 我了解 redisson 仅在专业版中支持数据分区,但该功能不是已通过 redis 集群模式支持 OOTB 吗?我在这里错过了什么吗?

0 投票
1 回答
34 浏览

redis - 无论集群模式如何,所有(不包括分区的)Redisson 功能都可以工作吗?

嗨,看看文档,除了明显声明一个功能被分区的地方,例如,无论 Redis 集群模式如何,常规 Redisson 映射或 AtomicLong 是否工作?