Мне нужно читать из потока REDIS, пока сервер все еще будет записывать в STream. Сейчас есть 2 способа. 1 способ - получить список сообщений, которые уже есть. Я делаю это, как указано ниже. Однако я хочу выполнить блокировку чтения, чтобы мое клиентское консольное приложение ожидало сообщений в потоке. Я знаю, что то же самое можно сделать с помощью следующей команды в REDIS-CLI. Я хочу добиться того же результата в C # XREAD BLOCK 1000 STREAMS # channel1 1526999626221-0
IDatabase db = redis.GetDatabase ();
while (true)
{
iteration++;
//var messages = db.StreamRead("#channel1", "0-0");
var messages = db.StreamRead("#channel1", lastMessageInAsequence);
IEnumerator MessageEnumerator = messages.GetEnumerator();
while (MessageEnumerator.MoveNext())
{
StackExchange.Redis.NameValueEntry[] entry1 = ((StackExchange.Redis.StreamEntry)MessageEnumerator.Current).Values;
lineCount++;
Console.WriteLine(entry1[0].Name + ":" + entry1[0].Value);
lastMessageInAsequence = entry1[0].Name;
}
Console.WriteLine($"{lineCount} lines read from stream in 1 go in iteration {iteration}");
}