首页 > 解决方案 > 我可以从 Redis 的最新数据中得到我想要的数据吗?

问题描述

我想知道 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 个数据吗?

在 sorted set 中看到了类似的方法,但这不是我想要的功能。我想将海量日志实时存储到Redis,我想每100ms将它们带到最新的10~50条数据。

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

标签: javaredislettuce

解决方案


借助 redis 中的 pub 和 sub 功能,您可以将数据存储在一个地方,并在特定时间间隔撤回这些数据。

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

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


推荐阅读