我可以从Redis的最新数据中获取想要的数据吗?

时间:2019-06-18 07:27:00

标签: java redis lettuce

我想知道Redis数据的偏移量,例如kafka使用者中的偏移量。 下面的代码是使用Kafka Consumer和offset来导入最新的n个数据的代码。

public ConsumerRecords<String, String> getLatestMessages() {
    ConsumerRecords<String, String> messages = null;
    consumer.seekToEnd(topics);

    long endPosition = consumer.position(topicPartition);
    long startPosition = endPosition - 10; 

    consumer.seek(topicPartition, startPosition);
    messages = consumer.poll(Duration.ofMillis(100));

    return messages;
}

我可以像这样的代码从Redis获取n个数据吗?

在排序集中可以看到类似的方法,但这不是我想要的功能。 我想将大量日志实时存储到Redis,并且希望每100毫秒将它们带到最新的10〜50数据。

有什么办法可以从Redis获得它吗? 现在我用生菜库。

1 个答案:

答案 0 :(得分:0)

借助redis中的pub和sub功能,您可以将数据存储在一个位置,并按特定的时间间隔提取这些数据。

您可以使用stackexcahnge.redis将数据订阅到mongodb并使用api将其提交给客户

可能还有其他解决方案,但我正在那样使用,并且会推荐