• Tomcat会话管理器与redisson
    尝试用redisson配置我的javaee web项目。在Docker容器中设置Redis,运行良好。通过https://github.com/redisson/redisson/tree/master/redisson-tomcat配置我的tomcat。当我试图运行项目时,它会抛出以下错误:Java.Lang.ILulalAgMuMutExtExc:COM.FasTXML.JavaS.DavaBy.jSnMappApExpExchange:无限递归(STACKOFFROUP错误)(通过引用链:java. ...
  • Redisson地图是否是线程安全的?
    我有8个风暴螺栓执行器并行运行。我有一个统计缓存:map>例如,uservisitcache->(用户标识(roomid,totalvisit))8个并行线程(螺栓执行器)中的任何一个,只要在一个房间中找到一个用户,就会增加计数;如果在室外找到用户,就会减少计数。现在我的问题是如果我使用redisson,那么是userVisitCache.get(userId).put(roomId, visitCount)线程安全?如果没有,那么我应该使用uservisitcache.getlock().lock()…锁...
  • 什么是正确使用org.redisson.api.RedissonClient.getMap(..)
    在node1中运行的service1service1在redis bucket“userbucket”中添加用户数据在节点2中运行的服务2service2需要从redis bucket“users”中获取最新的用户数据我在service2中维护了org.redisson.api.redissonclient的单实例最初,我的getcache()看起来像private static RMap<String, Map<String,User>> getCache(String bucketName) { r...
  • 如何使用RedissonSessionManager设置redis“会话密钥前缀”
    我想使用“redisson tomcat”库在redis中存储tomcat会话。但在将会话存储到redis之前,我需要添加密钥前缀。在redis中存储会话时,有没有添加会话密钥前缀的方法?根据我的发现,我需要用tomcat配置“redissonsessionmanager”。像吼叫<Manager className="org.redisson.tomcat.RedissonSessionManager" configPath="${catalina.base}/redisson.con...
  • 如何获得Redis群集的所有连接客户端?
    如何获取redis集群的所有连接客户端?我正在使用aws elasticcache redis与非群集模式和redision作为我的redis客户端。我的用例:我只需要从1个连接的redis客户端运行特定的代码。谢谢最佳答案:redis有关于客户信息的命令,比如CLIENT LIST,check outthis page。您可以签出this page,因为命令redisson还不受支持。
  • 带redisson的outofDirectMemory异常
    我想通过Redisson学习Redis。这是我要用多线程插入到redis中的代码。package redisson import java.io.File; import java.util.concurrent.atomic.AtomicInteger; import org.redisson.Redisson; import org.redisson.api.RBatch; import org.redisson.api.RMap; import org.redisson.api.RedissonCl...
  • HGETALL如何使用redisson
    我很难弄清楚如何使用redisson redis库访问地图键。我希望能够(使用redisson)访问由不使用redisson的系统创建的密钥。假设我使用redis-cli。sasus:16379> hset user fname "Nancy" (integer) 1 sasus:16379> hset user lname "Schmancy" (integer) 1 sasus:16379> hset user email "nanc@example.org" (integer) 1 sasus:163...
  • Redisson - 支持SCAN
    如果密钥的大小真的很大,有没有办法在不重载redis集群的情况下迭代扫描密钥?本地redis支持这一点。如果可以,那么我可以控制每次往返返回多少个密钥吗?最佳答案:我找到了两个问题的答案。是的,你可以用Redisson做这个。Rkeys.getKeys()一次取10个键。要控制计数,可以使用Rkeys.getKeysByPattern(null, <count>)。Rkeys.getKeys()内部使用
  • Redis - 最大订阅/连接?
    我设计了一个基于JavaSpring的实时通知系统和聊天系统,使用ReISIS和WebSoCuSts(SoCKJS和STOMP)。要求每个用户订阅一个唯一的频道(频道名称将是用户ID)。这是因为通知可以针对单个用户,而聊天对话可以是1对1。im使用redis的真正原因是在用户通过websocket连接的相应应用服务器(有很多)中触发一个事件。据我所知,当一个发布碰巧说“user1”时,如果我想让“onMessage处理程序”只为那个目标用户触发:我需要为每个用户维护一个redis连接吗?对于那些同时连接到系...
  • Redis缓存 - 使用Redisson访问HMSET
    我已将HMSET存储在redis缓存中,如下所示>hmset [User1] [Key1] [value1] [Key2] [value2] 现在如何使用redisson中的User1键获得键和值映射?如何获取特定密钥和用户的值?我试过了RMap<String, String> map = client.getMap( "User1" ); 但没用。最佳答案:RMap<String, String> map = client.getMap( "User1" ); 这只提供了一个处理程序来操作redis散列...
  • 通过redisson避免重复行
    我有一张桌子,福。我在这个表中添加关于某些事件的行。当前的总体设计无法避免重复消息。这将导致向表中添加重复的行。我无法对表设置唯一约束,因为此表中有不同类型的消息成为行。我只想避免重复特定类型的消息。由于重复的消息经常并发出现,而且应用程序在多个节点上运行,所以我决定使用Radisson来获取分布式锁。然而,它似乎不起作用。我的表里还有重复的行。根据用户标识、日期和类型检测重复消息。下面是最简单的演示代码。我试图在写之前进行读操作,而这个读操作是在跨应用程序节点的同步块中进行的。感谢对此的任何意见。 ...
  • Redisson - 队列容量/文档
    有没有关于redisson或最佳实践的像样的文档?我使用的.getBlockingQueue()允许offer()和put(),但我不知道队列的容量是多少。我想将其设置为根据需要进行扩展,但如果不这样做,我假设如果我尝试offer()项并且队列已满,我可能需要一些持久性。由于文档看起来很稀疏,我发现很难自信地使用。最佳答案:RBlockingQueue当前是“unbounded”这就是remainingCapacity返回integer.max的原因。但它仅受redis服务器内存大小的限制。我正在考虑引入一...
  • 如何管理Redisson嵌套对象的到期时间
    我使用redisson库来管理redis中的数据,并拥有以下pojo(将get/set/constructor留在这里)。@REntity Class A { @RId String id; .... List<B> listOfB; } @REntity class B { @RId String id ..... } A和B实例都是使用rliveobjectservice创建的,并使用asrexpirable设置为过期。第一个问题是B类实例没有过期-我将B实例显式标记为可导出...
  • 如何为使用Redisson Live Objects创建的POJO指定生存时间?
    我正在用@rentitty,@rid注释一些pojo,使它们可以作为带有redisson library/redis的jvm上的分布式对象使用。在使用liveobjectservice创建这些pojo时,如何为它们指定生存时间?最佳答案:我浏览了api文档,发现了以下内容。redisliveobjectservice有一个方法“asrexpirable(t instance)”(链接到文档:https://static.javadoc.io/org.redisson/redisson/3.4.1/org/r...
  • Redisson和Json用于对象
    我目前正在作为redis客户端尝试redisson,到目前为止,我已经能够毫无问题地替换大量代码。我现在遇到的唯一问题是试图使用分布式集合,例如queue或list。List<MyEntry> entries = // read some sample data from a file RedissonClient client = // create client RBlockingQueue<MyEntry> queue = client.getBlockingQueue("test-queue", n...
加载中...
公众号