通常のサブスクライバーAPIは正常に機能するはずです。ユースケースに関する仮定はなく、これは正常に機能するはずです。
ただし、これはAPIのヘルパーメソッドと、おそらく別のデリゲート署名の恩恵を受ける可能性のある組み込み機能であり、keyapace通知の構文をカプセル化して、複製する必要がないようにすることに同意します。そのために:忘れられないように問題をログに記録することをお勧めします。
キースペースイベントをサブスクライブする方法の簡単なサンプル
まず、Redisキースペースイベントが有効になっていることを確認することが重要です。たとえば、イベントはタイプ Setのキーで有効にする必要があります 。これは、CONFIG SET
を使用して実行できます コマンド:
CONFIG SET notify-keyspace-events KEs
キースペースイベントを有効にすると、pub-subチャネルにサブスクライブするだけです。
using (ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost"))
{
IDatabase db = connection.GetDatabase();
ISubscriber subscriber = connection.GetSubscriber();
subscriber.Subscribe("[email protected]__:*", (channel, value) =>
{
if ((string)channel == "[email protected]__:users" && (string)value == "sadd")
{
// Do stuff if some item is added to a hypothethical "users" set in Redis
}
}
);
}
キースペースイベントの詳細については、こちらをご覧ください。