我是SpringIntegration和Redis的新手,如果我犯了一个天真的错误,我深表歉意。我的要求如下-需要实现一个消息队列。用于根据某些事件向用户发送资金。队列不应该是易变的并且确保原子性。如果我重新启动服务器或它崩溃了,它不应该丢失事件消息。这也包括当前正在处理的消息。队列应该传递授予一次且仅一次的消息。它将是一个多线程(worker)和多服务器环境。到目前为止,我的进展是-在我的spring项目中配置了SpringIntegration和SpringIntegrationRedis。我的SpringIntegration配置如下-我阅读了一篇关于类似主题的文章,其中他们为此
我制作了一个用于更新许多客户端的脚本。该脚本应该能够在多个实例中运行。首先,Redis会检索所有客户端的ID。然后,脚本的每个实例将RPOPLPUSH-ing所有客户端(更新一个客户端并放在列表的后面)。脚本应该能够检测新客户端是否已注册(查询数据库)并且需要将其ID放入列表/集合中。因此,我需要让集合具有唯一性,没有重复ID。排序集似乎是这里的解决方案,但它没有RPOPLPUSH功能。我有哪些选择? 最佳答案 使用SortedSets,但使用简单的Redis服务器端Lua脚本(EVAL)实现您自己的请求命令变体。SortedSet
我想从列表1中弹出多个项目,并希望将这些弹出的元素推送到列表2中。任何人都可以告诉它如何在redis中完成。现有的RPOPLPUSHlist1list2执行此操作但只有一个元素。 最佳答案 只需在循环中使用RPOPLPUSH命令,无论是在nativelua脚本中还是在您的客户端应用程序中。如果您担心发出多个命令时出现网络延迟,请使用管道或服务器端脚本。一般来说,redis的设计理念是给你非常简单的命令,让你在客户端将它们构建成更复杂的链(我的一个同事将其描述为“数据汇编语言”),而不是在服务器端提供许多窄用途命令。这样,他们(阅读: