首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-xd自定义redis-sink

spring-xd自定义redis-sink
EN

Stack Overflow用户
提问于 2016-03-21 00:39:02
回答 1查看 107关注 0票数 1

因此,我认为我需要扩展spring-xd中提供的当前redis-sink,以写入到redis上限列表中,而不是创建一个新的,但不幸的是,情况似乎变得更糟,因为我必须更深入地研究spring集成,并进一步回到spring-data (spring-data- redis ),因为整个redis-sink似乎都基于redis上的通用pub/sub抽象-或者是否有某种类型的处理程序,可以在消息到达通道处理程序后定义?

为了在推送数据redis时具有“上限列表的效果”,我需要执行redis " push“,然后执行"rtrim”,如下所示- http://redis.io/topics/data-types-intro。如果我要构建一个自定义的spring-integration / spring-data模块。我相信我在这里看到了对"ltrim“操作的支持,但不支持”rtrim“操作。http://docs.spring.io/spring-data/redis/docs/1.7.0.RC1/api/

任何关于如何/从哪里开始或更简单的方法的建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-03-21 02:21:14

实际上,即使是Redis也没有这样的RTRIM command。我们不需要它,因为我们得到了与LTRIM的负索引相同的行为

开始和结束也可以是负数,表示距列表末尾的偏移量,其中-1是列表的最后一个元素,-2是倒数第二个元素,依此类推。

我认为您应该使用<redis:store-outbound-channel-adapter>,并在其配置中添加类似以下内容:

代码语言:javascript
复制
<int-redis:request-handler-advice-chain>
    <beans:bean class="org.springframework.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice">
        <beans:property name="onSuccessExpression" value="#redisTemplate.boundListOps(${keyExpression}).trim(1, -1)"/>
    </beans:bean>
</int-redis:request-handler-advice-chain>

删除Redis列表中最旧的元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36116475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档