问题标签 [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 投票
1 回答
4735 浏览

java - Redisson 捕获密钥过期事件

我在我的大数据应用程序中使用 Redis 作为缓存服务。Redis 的主要目的是验证我们从每个请求中收到的密钥。

我们使用 RMap 来存储键值对,示例如下:

我想为我插入的每个键分配 TTL,我知道我可以使用RMap.expire(). 我没有得到的是,当特定密钥过期时,我该如何收听。由于每个键都有不同的 TTL,并且如 Redis 文档中所述,它会处理键的自动过期并生成事件。

我的问题是,

  1. 如何捕获生成的 EXPIRE 事件并获取它在 Redisson java 库中生成的密钥?

  2. 这是更好的方法(redis 内置自动过期),还是运行一些检查过期密钥的线程更好?

0 投票
2 回答
14337 浏览

java - 从 Java 连接到 AWS Elasticache(Redis 集群)的正确方法是什么?

我是AWS Elasticache redis的新手,而且我低于端点。

图片

我对使用JedisRedisson感到困惑,因为两者都提供单连接和集群连接类。

就像在Jedis中一样,对于单个连接,我们可以使用:

对于集群连接,我们使用:

当我想使用Redisson时,也会出现这些选项。我不想比较这两个库,我的问题是:当您只有一个端点并且仍然可以利用 AWS 自动扩展功能时,哪种方法是连接到AWS Redis Elasticache集群的正确方法?

预期答案是:使用 SINGLE 或 CLUSTER MODE。

谢谢 :)

0 投票
2 回答
5950 浏览

java - java.lang.NoSuchMethodError:在 redisson 和 netty 集成中

我使用 redisson 3.4.4 构建了自己的自定义方法库。这在内部使用 netty-all-4.1.13.Final.jar。

当我构建我的库并尝试与一个项目一起使用时,我得到以下异常,

我进一步深入研究了“netty-all-4.1.13.Final.jar”,并找到了返回类型为“io/netty/bootstrap/BootstrapConfig”的方法“io.netty.bootstrap.Bootstrap.config()”实际上是存在的。

如果它存在于我正在使用的 jar/库中,为什么我会在这里收到“方法未找到错误”?

0 投票
1 回答
1968 浏览

redis - Redis - 最大订阅/连接数?

我正在使用 Redis 和 WebSockets(使用 sockJS 和 STOMP)设计一个基于 Java Spring 的实时通知系统和聊天系统。要求每个用户订阅一个唯一的频道(频道名称将是用户 ID)。这是因为通知可以针对单个用户,并且聊天对话可以是一对一的。我使用redis的真正原因是在用户通过WebSocket连接的相应应用程序服务器(有很多)中触发事件。据我了解,当发布碰巧说“user1”时 - 如果我想为该目标用户触发“onMessage 处理程序”:

  1. 我需要为每个用户维护 1 个 redis 连接吗?
  2. 是否可以一次打开 15k 个连接,同时为那些同时连接到系统的许多用户提供 15k 个唯一订阅?
0 投票
2 回答
3028 浏览

java - Redisson Spring - 处理命令时出现意外异常

我正在使用 Redisson 在 redis 中存储地图。

弹簧配置:

我在以下代码中遇到异常

redObjBucket.get()

错误是:

我调试了redis代码,发现在CommandAsycService get(RFuture<V> future)Method中,

是假的。

相同的代码在 POC 项目中工作。那里,future.isSuccess()是真的

我错过了什么吗?

PS:我尝试更改编解码器但没有结果。

这是完整的堆栈跟踪:

0 投票
1 回答
2969 浏览

java - 如何在 Redisson 中提高 RMapCache 的性能

当我在 Java 中使用 Redisson 时,我遇到了一个性能问题,我需要更多建议。情况如下:

需要 Redis 缓存来存储带有主键和辅助键的值(对象),所以我想我可以在 Redisson 中使用 RMapCache。

很容易达到这个结果,但是这个分布式映射似乎存在性能问题,这会增加很多往返,并且会在高并发下造成性能瓶颈。以及这里的解释:https ://www.slideshare.net/RedisLabs/redisconf17-distributed-java-map-structures-and-services-with-redisson

好吧,我正在考虑 RLocalCachedMap,但似乎它也不是正确的方法。有人可以帮我吗?

如果我想使用带有主键和辅助键的 Redis 缓存来存储值(对象),如何提高性能?任何的意见都将会有帮助。提前致谢。

0 投票
2 回答
6914 浏览

java - 对象的 Redisson 和 Json

我目前正在尝试将 Redisson 作为 Redis 客户端,到目前为止,我已经能够毫无问题地替换大量代码。我现在唯一遇到的问题是尝试使用分布式集合,例如队列或列表。

当我到达最后一行时,我总是得到这个异常 -

com.fasterxml.jackson.databind.exc.InvalidTypeIdException:尝试解析 [simple type, class java.lang.Object] 的子类型时缺少类型 id:在 [来源:(io.netty.缓冲区.ByteBufInputStream); 行:1,列:1439]

当我将@JsonTypeInfo 添加到我的类时,它似乎可以工作,但是,我无权添加@JsonTypeInfo 注释的大多数类。

我在这里遗漏了什么?解决此问题的一种方法是使用 ByteArrayCodec 并使用我自己的 ObjectMapper 进行序列化/反序列化(编辑:尝试这样做会引发另一种异常!),但如果可能的话,我更愿意让 Redisson 处理这个问题,因为它提供了许多编解码器已经。

像往常一样非常感谢任何帮助!

更多信息 - 我最终编写了自己的简单编解码器,它只是将一个类作为参数,并创建一个解码器,并且编码器的工作方式类似于 JsonJacksonCodec 的工作方式,但有一个区别 -

而且我能够使我的示例正常工作-但这感觉像是一种解决方法,而不是原始问题的解决方案,而且我不想为我拥有的每个实现编写额外的编解码器:)

0 投票
1 回答
500 浏览

redis - Redisson Redis 客户端是否支持自动拓扑发现?

文档建议我们创建一个具有特定 Redis 配置(集群、复制、主从等)的 redisson 实例。

在我只有集群中一个节点的端点的情况下,Redisson 将发现集群的部署模式(复制、分片等),而无需用户使用特定配置进行实例化。如果是这样,那么从哪个可用配置开始是理想的?

0 投票
1 回答
1148 浏览

redis - Redisson - 支持 SCAN

  1. 如果密钥大小真的很大,有没有办法迭代地扫描密钥而不会使 Redis 集群过载?Redis 本机支持这一点。

  2. 如果上述是可能的,那么我可以控制每次往返返回多少键吗?

0 投票
1 回答
2374 浏览

multithreading - Redisson 客户端 - 线程安全

redisson 客户端线程安全吗?在我的应用程序中,我想维护一个客户端对象并让所有线程使用它来获取/放入 Redis。在配置中,有两个参数threadsnettyThreads. 这些参数是否有助于创建连接池?如果是,如果我的用例主要是对 Redisson 对象的简单 get/put 操作,我应该使用哪一个?

此外,这些连接是否在 RedissonClient 的整个生命周期中都处于活动状态?