Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Server Pub/Sub Terkelola Redis

Mesin Pub/Sub yang menjalankan Redis ServerEvents dan Redis MQ telah diekstraksi dan dienkapsulasi menjadi kelas yang dapat digunakan kembali yang dapat digunakan secara independen untuk menangani pesan yang dipublikasikan ke saluran Redis Pub/Sub tertentu.

RedisPubSubServer memproses pesan di utas latar belakang terkelola yang menghubungkan kembali secara otomatis ketika koneksi redis-server gagal dan berfungsi seperti Layanan latar belakang independen yang dapat dihentikan dan dimulai sesuai perintah.

API publik ditangkap di antarmuka IRedisPubSubServer:

public interface IRedisPubSubServer : IDisposable
{
    IRedisClientsManager ClientsManager { get; }
    // What Channels it's subscribed to
    string[] Channels { get; }

    // Run once on initial StartUp
    Action OnInit { get; set; }
    // Called each time a new Connection is Started
    Action OnStart { get; set; }
    // Invoked when Connection is broken or Stopped
    Action OnStop { get; set; }
    // Invoked after Dispose()
    Action OnDispose { get; set; }

    // Fired when each message is received
    Action<string, string> OnMessage { get; set; }
    // Fired after successfully subscribing to the specified channels
    Action<string> OnUnSubscribe { get; set; }
    // Called when an exception occurs 
    Action<Exception> OnError { get; set; }
    // Called before attempting to Failover to a new redis master
    Action<IRedisPubSubServer> OnFailover { get; set; }

    int? KeepAliveRetryAfterMs { get; set; }
    // The Current Time for RedisServer
    DateTime CurrentServerTime { get; }

    // Current Status: Starting, Started, Stopping, Stopped, Disposed
    string GetStatus();
    // Different life-cycle stats
    string GetStatsDescription();
    
    // Subscribe to specified Channels and listening for new messages
    IRedisPubSubServer Start();
    // Close active Connection and stop running background thread
    void Stop();
    // Stop than Start
    void Restart();
}

Penggunaan #

Untuk menggunakan RedisPubSubServer , inisialisasi dengan saluran yang ingin Anda langgani dan tetapkan penangan untuk setiap peristiwa yang ingin Anda tangani. Minimal Anda ingin menangani OnMessage :

var clientsManager = new PooledRedisClientManager();
var redisPubSub = new RedisPubSubServer(clientsManager, "channel-1", "channel-2") {
        OnMessage = (channel, msg) => "Received '{0}' from '{1}'".Print(msg, channel)
    }.Start();

Memanggil Start() setelah diinisialisasi akan membuatnya mulai mendengarkan dan memproses pesan apa pun yang dipublikasikan ke saluran langganan.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. bagaimana cara menggunakan layanan mikro nestjs redis?

  2. Kerangka kerja Django REST masih merespons dengan data yang di-cache bahkan setelah kunci redis kosong

  3. Pegangan Kesalahan Redis Musim Semi

  4. Waktu kedaluwarsa sesi ekspres dan redis

  5. Kunci Python-redis() mengembalikan daftar objek byte alih-alih string