问题标签 [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 捕获密钥过期事件
我在我的大数据应用程序中使用 Redis 作为缓存服务。Redis 的主要目的是验证我们从每个请求中收到的密钥。
我们使用 RMap 来存储键值对,示例如下:
我想为我插入的每个键分配 TTL,我知道我可以使用RMap.expire()
. 我没有得到的是,当特定密钥过期时,我该如何收听。由于每个键都有不同的 TTL,并且如 Redis 文档中所述,它会处理键的自动过期并生成事件。
我的问题是,
如何捕获生成的 EXPIRE 事件并获取它在 Redisson java 库中生成的密钥?
这是更好的方法(redis 内置自动过期),还是运行一些检查过期密钥的线程更好?
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/库中,为什么我会在这里收到“方法未找到错误”?
redis - Redis - 最大订阅/连接数?
我正在使用 Redis 和 WebSockets(使用 sockJS 和 STOMP)设计一个基于 Java Spring 的实时通知系统和聊天系统。要求每个用户订阅一个唯一的频道(频道名称将是用户 ID)。这是因为通知可以针对单个用户,并且聊天对话可以是一对一的。我使用redis的真正原因是在用户通过WebSocket连接的相应应用程序服务器(有很多)中触发事件。据我了解,当发布碰巧说“user1”时 - 如果我想为该目标用户触发“onMessage 处理程序”:
- 我需要为每个用户维护 1 个 redis 连接吗?
- 是否可以一次打开 15k 个连接,同时为那些同时连接到系统的许多用户提供 15k 个唯一订阅?
java - Redisson Spring - 处理命令时出现意外异常
我正在使用 Redisson 在 redis 中存储地图。
弹簧配置:
我在以下代码中遇到异常
redObjBucket.get()
错误是:
我调试了redis代码,发现在CommandAsycService get(RFuture<V> future)
Method中,
是假的。
相同的代码在 POC 项目中工作。那里,future.isSuccess()
是真的
我错过了什么吗?
PS:我尝试更改编解码器但没有结果。
这是完整的堆栈跟踪:
java - 如何在 Redisson 中提高 RMapCache 的性能
当我在 Java 中使用 Redisson 时,我遇到了一个性能问题,我需要更多建议。情况如下:
需要 Redis 缓存来存储带有主键和辅助键的值(对象),所以我想我可以在 Redisson 中使用 RMapCache。
很容易达到这个结果,但是这个分布式映射似乎存在性能问题,这会增加很多往返,并且会在高并发下造成性能瓶颈。以及这里的解释:https ://www.slideshare.net/RedisLabs/redisconf17-distributed-java-map-structures-and-services-with-redisson
好吧,我正在考虑 RLocalCachedMap,但似乎它也不是正确的方法。有人可以帮我吗?
如果我想使用带有主键和辅助键的 Redis 缓存来存储值(对象),如何提高性能?任何的意见都将会有帮助。提前致谢。
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 的工作方式,但有一个区别 -
而且我能够使我的示例正常工作-但这感觉像是一种解决方法,而不是原始问题的解决方案,而且我不想为我拥有的每个实现编写额外的编解码器:)
redis - Redisson Redis 客户端是否支持自动拓扑发现?
文档建议我们创建一个具有特定 Redis 配置(集群、复制、主从等)的 redisson 实例。
在我只有集群中一个节点的端点的情况下,Redisson 将发现集群的部署模式(复制、分片等),而无需用户使用特定配置进行实例化。如果是这样,那么从哪个可用配置开始是理想的?
redis - Redisson - 支持 SCAN
如果密钥大小真的很大,有没有办法迭代地扫描密钥而不会使 Redis 集群过载?Redis 本机支持这一点。
如果上述是可能的,那么我可以控制每次往返返回多少键吗?
multithreading - Redisson 客户端 - 线程安全
redisson 客户端线程安全吗?在我的应用程序中,我想维护一个客户端对象并让所有线程使用它来获取/放入 Redis。在配置中,有两个参数threads
和nettyThreads
. 这些参数是否有助于创建连接池?如果是,如果我的用例主要是对 Redisson 对象的简单 get/put 操作,我应该使用哪一个?
此外,这些连接是否在 RedissonClient 的整个生命周期中都处于活动状态?