У меня есть приложение SpringBoot, где микросервисы отправляют и получают данные из потока redis. Таким образом, каждая запись отправки сервиса, которая является Map:
StringRedisTemplate redisTemplate = new StringRedisTemplate();
Map<String, String> recordMap = new HashMap<>();
recordMap.put("topic", "topicName");
recordMap.put("user", "John");
recordMap.put("somethingElse", "someData");
redisTemplate.opsForStream().add(
StreamRecords.newRecord()
.in("name_of_stream")
.ofMap(recordMap)))
Другие сервисы имеют
public class RedisMessagesListener implements StreamListener<String, MapRecord<String, String, String>>
, которая запускается для каждого сообщения в Redis, ищет значение "topi c" в записать и сделать некоторые сотрудники.
Проблема в том, что записи, отправленные в Redis Stream, всегда сохраняются Redis.
Я собираюсь создать метод @Scheduled в Java?
Мне нужно удалить старые записи определенных тем, осталось только N новых записей (например, 1 000 000)?.
Как я могу это сделать?