Отправка redis automati c keyspace уведомлений - это конфигурация сервера redis, которую можно включить через файл .conf (notify-keyspace-events
) или через CONFIG SET
во время выполнения; документация для этого здесь .
Вы можете увидеть, как это работает, с примером кода:
using StackExchange.Redis;
using System;
using System.Linq;
static class P
{
private const string ChatChannel = "__keyspace@0__:*";
static void Main()
{
// connect (allowAdmin just lets me use ConfigSet)
using var muxer = ConnectionMultiplexer.Connect("127.0.0.1,allowAdmin=true");
// turn on all notifications; note that this is server-wide
// and is NOT just specific to our connection/code
muxer.GetServer(muxer.GetEndPoints().Single())
.ConfigSet("notify-keyspace-events", "KEA"); // KEA=everything
// subscribe to the event
muxer.GetSubscriber().Subscribe(ChatChannel,
(channel, message) => Console.WriteLine($"received {message} on {channel}"));
// stop the client from exiting
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}
}
, который работает как:
Однако во многих сценариях ios вы можете обнаружить, что это слишком «шумно», и вы можете предпочесть использовать либо событие с произвольным именем, которое вы публикуете sh вручную когда вы делаете то, что требует уведомления, или (снова вручную) вы можете использовать функции streams для потребления потока данных (потоки можно рассматривать как поток событий в смысле «вещи, которые произошли», но они не доставляются через pub / sub).