没有maxlen选项来限制spring data reactive Redis模板中的流大小
我正在使用反应式redis模板试用SpringDataRedis。但是,到目前为止,我还没有找到限制流大小的没有maxlen选项来限制spring data reactive Redis模板中的流大小,spring,redis,spring-webflux,spring-data-redis,Spring,Redis,Spring Webflux,Spring Data Redis,我正在使用反应式redis模板试用SpringDataRedis。但是,到目前为止,我还没有找到限制流大小的Xargs 基本实现在本机实现中具有该选项: commands .xadd(streamKey, XAddArgs.Builder.maxlen(200L), eventKey, record); 但是,此选项在RedisTemplateAFAIK中不可用。maxlen选项是不可避免的,因为流可能呈指数增长 如果有人遇到它,你能给我指出正确的地方吗 谢谢大家。在R
Xargs
基本实现在本机实现中具有该选项:
commands
.xadd(streamKey, XAddArgs.Builder.maxlen(200L), eventKey,
record);
但是,此选项在RedisTemplate
AFAIK中不可用。maxlen
选项是不可避免的,因为流可能呈指数增长
如果有人遇到它,你能给我指出正确的地方吗
谢谢大家。在RedisTemplate的[StreamOperations][1]
界面中不支持withMAXLEN
您可以使用trim(K键,长计数)
()添加(…),以获得类似的效果。这两个命令将同时发送,因此您只有一个往返时间
与XADD
相比,XTRIM
是一项昂贵的操作。时不时地考虑在一个单独的逻辑上进行修剪,而不是与每个<代码> xADD> /COD>
遗憾的是,MAXLEN~
似乎也不受支持,因此我们只能在RedisTemplate上进行精确计数修剪。RedisTemplate的[StreamOperations][1]
界面中不支持withMAXLEN
您可以使用trim(K键,长计数)
()添加(…),以获得类似的效果。这两个命令将同时发送,因此您只有一个往返时间
与XADD
相比,XTRIM
是一项昂贵的操作。时不时地考虑在一个单独的逻辑上进行修剪,而不是与每个<代码> xADD> /COD>
遗憾的是,<代码> Max L~~/代码>似乎也不支持,所以我们只在ReDistMePoT上进行精确的计数修剪。
我找不到它,考虑用Time-()添加流水线Ad(),以获得相同的效果,不知道有修剪功能。将尝试并发布反馈。这就像每次向流中添加元素时的2次操作一样。你觉得怎么样@LeoMurillo?是的,但是XTRIM很贵。与使用MAXLEN的XADD相比,这两个命令管道化应该可以忽略不计。@LeoMurillo感谢您指出这一点。首先,我假设你说的是事务
,你说的是流水线
。如果是这样的话,这对我来说有点问题,因为我正在处理集群,并且由于拓扑问题,通常不建议运行事务。话虽如此,我确实搜索了不同的管道方式,但找不到具体的方法来管道
或链
修剪()
到添加()
。你能指出一个例子吗?我找不到它,考虑用Trimes()添加流水线Ad()来获得相同的效果,不知道有一个修剪函数。将尝试并发布反馈。这就像每次向流中添加元素时的2次操作一样。你觉得怎么样@LeoMurillo?是的,但是XTRIM很贵。与使用MAXLEN的XADD相比,这两个命令管道化应该可以忽略不计。@LeoMurillo感谢您指出这一点。首先,我假设你说的是事务
,你说的是流水线
。如果是这样的话,这对我来说有点问题,因为我正在处理集群,并且由于拓扑问题,通常不建议运行事务。话虽如此,我确实搜索了不同的管道方式,但找不到具体的方法来管道
或链
修剪()
到添加()
。你能举个例子吗?非常感谢LeoMurillo!那帮了大忙!非常感谢@LeoMurillo!那帮了大忙!